- 博客(35)
- 收藏
- 关注
原创 1363 A. Odd Selection
题目判断从n个数能不能选x个数和为奇数。题解:分情况。代码:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intmain(){intt;cin>>t;while(t--){intn,x;cin>>n>>x;intm;into...
2021-08-21 15:23:32
280
原创 588 B. Duff in Love
题目给一个n,找到n的因子里面最大的,不存在大于1的完全平方数是它的因子的数。题解:从i=2到sqrt(n),只要i的平方数能整除n,就除以i,再输出n。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() { ll n; cin >> n; for (ll i = 2; i <= sqrt(n); ++i) { whil...
2021-08-17 21:41:18
217
原创 304 B. Calendar
题目:求两个日期相差的天数。题解:直接求。代码:#include <bits/stdc++.h>using namespace std;int a, b, c;int t[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };bool f(int a) { if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) return...
2021-08-16 22:05:59
212
原创 630 N. Forecast
题目:求一元二次方程的解。题解:直接求。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1e3+1;inta[N];intmain(){doublea,b,c;cin>>a>>b>>c;doubled,x1,x2;d=sqrt(b*b-4*a*c);x1=(-b-d)/(2*a);x2=...
2021-08-15 21:01:35
178
原创 洛谷 P1886 滑动窗口 /【模板】单调队列
题目:代码:#include<bits/stdc++.h>using namespace std;const int N = 1e3 + 1;int a[N];int main() { int n, k; cin >> n >> k; int m; vector<int>v;//单调递减队列 for (int i = 0; i < n; ++i) { cin >> ...
2021-08-14 22:53:24
222
原创 洛谷 P5788 【模板】单调栈
题目:在数组中求每个元素之后第一个比它大的数的下标题解:使用递减单调栈来存储下标,从后往前遍历数组代码:#include<bits/stdc++.h>using namespace std;#define f(i,n) for(int i=1;i<=n;++i)const int N = 3e6 + 1;typedef long long ll;ll a[N];ll ans[N];int main() { ios::sync_with_stdio..
2021-08-13 14:02:31
183
原创 洛谷 P2440 木材加工
题目:给定n个木头及其长度,要求把这些木头切割成k块长度相同的小段木头,求小段木头的最大值。题解:二分,从0到最大长度的木材,如果获得段数满足则赋值,否则继续二分,直到完成并取最大值。代码:#include<bits/stdc++.h>usingnamespacestd;#definef(i,n)for(inti=0;i<n;++i)constintN=1e5+1;inta[N];typedeflonglongll;...
2021-08-12 15:24:50
376
原创 1165 C. Good String
题目:给定一个字符串,你需要进行删除操作使得它满足新式字符串的要求,问最小的修改次数。题解:遍历字符串完成这个删除操作。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+1;typedeflonglongll;intmain(){intn;cin>>n;strings,a;cin>>s;int...
2021-08-11 14:07:02
138
原创 135 A. Replacement
题目:在数组里找一个数,找到另一个数替换,然后再对数组进行排序,输出可能的数组最小值。题解:要求最后得到的最小,把最大的那个替换掉,而且最简单的还是替换成1,题目中说必须要替换掉一个,不能用自己替换掉自己,如果输入的全是1,就要替换成2。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+1;inta[N];intmain(){intn;...
2021-08-10 12:05:03
205
原创 797 B. Odd sum
题目:给一个长度为n的整数序列,从中挑出一些数,使它们的和最大并且为奇数。题解:先判断每一个数,如果是奇数就存入vector,偶数就直接加到sum,然后降序排序,先加a[0]保证sum是奇数,后面每两个在一起加一次,如果大于零就加到sum,小于零就直接可以break。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+1;inta[N];intmain(){ios::sync...
2021-08-09 12:05:09
386
原创 327 B. Hungry Sequence
题目:求一个含n个元素数列,元素从小到大,并且后面的数不能被前面的数整除。题解:取n到2n-1这n个数字,显然后面的数不能被前面的数整除,而且元素也是从小到大排列的。代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+1;inta[N];inti,j,n;intmain(){ios::sync_with_stdio(0);cin.tie...
2021-08-08 11:15:30
132
原创 350 A. TL
题目:Valera想给一个题设置时间限制(Time Limit),他写了n个正确的程序和m个错误的程序,每个程序都有自已运行的时间,设时间限制为v,一个程序只有运行时间不超过v才能AC,在所有能够AC的程序中,有的程序可以以其本身2倍运行时间通过,对于v,要满足一下要求:1、v是一个正整数;2、所有的正确程序都能通过;3、至少有一个程序可以有一个额外的运行时间a;4、所有的错误程序都不能通过;5、v是所有满足的时间限制中最小的时间。现给出这n个正确程序的运行时间和这m个错误程序的
2021-08-07 15:39:34
74
原创 1369 B. AccurateLee
题目:给一个01组成的字符串,如果字符串中有“10”结构,那么就可以删除这个1和0中的一个数,使剩下的字符串最短。题解:删除从第一个1开始到最后一个0前面一个数之间的所有数。代码:#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 1;int a[N]; int i, j, n;//我们可以删掉该字符串从第一个‘1’出现的位置开始//到最后一个‘0’出现的位置为止中间的所有数。int mai
2021-08-06 15:18:41
95
原创 180 C. Letter
题目:给一个字符串,对字母进行大小写转换,要求:大写字母都要在小写字母前面,求最小操作数。题解:用dp,DP,dp[0][i]表示第i位为大写字母时的最小操作数,dp[1][i]表示第i位为小写字母时的最小操作数。代码:#include<bits/stdc++.h>usingnamespacestd;intn;constintN=1e5+1;intdp[2][N];inta[N];//dp[0][i]:记录大写字母//dp[1]...
2021-08-05 14:48:35
99
原创 445 B. DZY Loves Chemistry
题目:有n种药物,其中m对能发生化学反应,容器初始危险度为1,当放入一种药品若和容器中已有物品能发生反应,危险度就乘2,求按一定顺序放入所有药品危险度最大是多少。题解:并查集,求出哪些数的父节点不是本身,再求出最大危险度。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int n, m;ll ans = 0, most_dangous = 1;const int N = 10001
2021-08-04 11:53:50
108
原创 1068 B. LCM
题目:已知b,a从1-1e18 ,求 lcm [ a, b ] / a有多少个不同的值。题解:由于:,且a的范围是1-1e18,故可以转为求b因子的数。代码:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;intmain(){ios::sync_with_stdio(0);llb;cin>>b;llans=0;...
2021-08-03 16:34:40
86
原创 126 B. Password
题目:从一个字符串里面找到存在前缀和后缀并且在字符串里面出现过的子串。题解:先求next数组,再用kmp配对。代码:#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 1;int Next[N];void getNext(string s){ int n = s.length(); Next[0] = -1; int k = -1, j = 0; while (...
2021-08-02 11:30:48
164
原创 625 B. War of the Corporations
题目:找出子串在母串里面出现的次数。题解:用KMP求解。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e6 + 1;int ans = 0;void getNext(const string& s, int next[]) { next[0] = -1; int k = -1; int j = 0; whi...
2021-08-01 13:28:53
134
原创 1538 C. Number of Pairs
题目:找出处于和r,l范围内的一对数的个数。题解:用lower_bound和upper_bound函数,【l,r】内对数等于【0,r】减去【0,l-1】内对数个数。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;int a[N];signed main(){ int t; cin >> t; while (t-...
2021-07-31 11:40:58
169
原创 1514 B.AND 0, Sum Big
题目:从2的k-1次方到0之间选取n个数,使这n个数&为0且和要尽可能大。题解:n个数化成二进制让每个数的其中一位变成0,即可使&为0,且和尽可能大,所以答案是n的k次方。代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod = 1e9 + 7;int main(){ ios::sync_with_stdio(0); cin...
2021-07-30 10:52:38
88
原创 1140 C. Playlist
题目:给定n个音乐,每个音乐都有一定长度和欣赏值,再给定一个k,求不超过k的情况下,音乐长度和乘以其中欣赏值的最小值的最大值。题解:用piar容器存放数据,用优先队列来去除最小的欣赏值,再找出其中的最大值。代码:#include<iostream>#include<utility>#include<queue>#include<algorithm>using namespace std;typedef long long ll
2021-07-29 11:10:05
163
原创 1526 C1,C2 Potions
题意:有一堆药水,每瓶一个正数或者是负数,可以选择喝与不喝,问最多可以喝多少瓶药水,使得最后的数值不为负数。题解:遇到正数的药水直接喝,遇到非正数的药水先喝,直到总喝为负数了,再把最小的那瓶负数的药水吐出来。代码:#include<iostream>#include<string>#include<queue>using namespace std;typedef long long ll;int main(){ ios_b...
2021-07-28 11:45:12
135
原创 1203 C. Common Divisors
题目:求一堆数里面公因数的数量。题解:先求出最大公因数,然后再查找。代码:#include<iostream>#include<map>using namespace std;typedef long long ll;ll n;const int MAX = 400001;ll a[MAX];ll GCD(ll a, ll b) { return a % b == 0 ? b : GCD(b, a % b);}int main()...
2021-07-27 15:34:41
66
原创 1520 D. Same Differences
题目:在一堆数据中找出 i<j && a[j]-a[i]=j-i 的个数。题解:式子可以换成 a[j]-j=a[i]-i,再用map存即可。代码:#include<iostream>#include<map>using namespace std;typedef long long ll;int main(){ int n; cin >> n; while (n--) ...
2021-07-26 17:34:22
157
原创 20 A. BerOS file system
题目:输入字符串按 /string/string/string......的格式输出。题解:对字符串进行一定的处理。代码:#include<iostream>#include<string>using namespace std;int main() { string a; cin >> a; int cnt = 0; string b; for (int i = 0; i < a.length(); i+...
2021-07-25 09:15:34
100
原创 20 B. Equation
题目:给定一元二次方程的系数,求解。题解:分类讨论系数。代码:#include<iostream>#include<map>#include<cmath>#include<iomanip>using namespace std;typedef long long ll;int main() { double a, b, c; cin >> a >> b >> c;...
2021-07-24 10:08:00
93
原创 25 A. IQ test
题目:在一堆只有奇数和偶数的数字里面输出与其他数字不同的数字,不同的数只出现过一次。题解:数清奇数和偶数哪个多,然后再进行输出性质不同的数字代码:#include<iostream>#include<map>#include<string>using namespace std;typedef long long ll;const int N = 101;int a[N];int main(){int n;
2021-07-23 08:22:41
194
原创 1526 B. I Hate 1111
题意:判断一个数是不是由11,111,1111......构成。题解:如果这个数符合条件,那么它要么被11整除,要么被111整除,只要把它一直减111,直到可以整除11即可代码:#include<iostream>#include<cmath>#include<string>using namespace std;typedef long long ll;int main(){ int n; cin >> n;wh...
2021-07-22 12:12:09
207
原创 2021-07-21
题意:从n个男生和m个女生里面选t人,男人不少于4人,女生不少于1人,求一共有多少种选法。题解:排列组合,暴力求解代码:#include<iostream>using namespace std;typedef long long ll;int main(){ int n, m, t, i, j; ll cnt_x, cnt_y, cnt = 0; cin >> n >> m >> t; ll _c...
2021-07-21 13:51:37
75
原创 70 A. Cookies
题意:按照已知的排饼干顺序推算规律题解:排饼干按照首项为1,公比为3的等比序列排序代码:#include <iostream>using namespace std;const int mod = 1e6 + 3;int main(){ int n; cin >> n; int ans = 1; if (n == 0) { cout << 1; } else { fo...
2021-07-20 19:25:53
79
原创 4 C. Registration system
题目:每次输入一个字符串a,如果未出现过,输出“OK”,如果出现过,输出该字符串+出现的次数.题解:使用map容器,将输入的字符串和map里面已有的字符串进行对比,再判断输出.代码:
2021-07-19 10:47:33
92
原创 11 B.Jumping Jack
题目:杰克最近正在研究他的跳跃技巧。目前,他位于数字线的零点。他想达到x.为了训练,他决定先跳一个单位,每次随后的跳跃将正好比前一个长一个。他每次跳跃都可以向左或向右走。他想知道他需要跳多少跳才能达到x。题解:x先取绝对值,让x一直向右移动,如果达到符合的数则输出,否则一直移动到第一个大于x的数,如果这个数-x为偶数,则输出步数,否则继续向右移动直到符合要求。代码:#include<iostream>#include<cmath>using namespace
2021-07-18 14:11:59
415
原创 29 B. Traffic Lights
题目:求车通过红绿灯的时间题解:若车过d时是绿灯,时间是总路程/速度若车过d时是红灯,时间是总路程/速度+等红灯时间代码:#include<iostream>#include<string>#include<utility>#include<map>#include <iomanip>using namespace std;typedef long long ll;int main() { doub...
2021-07-17 16:44:34
120
原创 1002 How many zero
题目:我们知道对于任意一个数N,(1<=N<=100),现在想要知道N!后面有多少个0。例如对于样例输入的5,其阶乘的表示形式为5*4*3*2*1=120,那么其后面就有一个0解析:想要得到0,只有存在2,5两个数相乘,而2的个数大于5的个数,只要找出哪些数贡献出5就可。题解:#include<iostream>using namespace std;int main(){ int n, sum; cin >> n; s...
2021-07-16 19:44:14
316
原创 1541 B. Pleasant Pairs
题意寻找一个数组中满足 i<j 且ai*aj=i+j的个数解析ai*aj=i+j 可以推出aj=(i+j)/ai ,又推出j= k*ai-i ,而k>2*i/ai 故 j可以从a[i]-i开始,并且自增a[i]直到找到满足条件代码#include<iostream>using namespace std;typedef long long ll;const int T = 200000;ll a[T];int main(){ i...
2021-07-16 15:59:36
333
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人