dp[i][0][0] =0; for(intj =1; j <= i; ++ j) for(intk =0; k < d; ++ k){ dp[i][j][k] =max(dp[i -1][j][k], dp[i -1][j -1][(k - a + d) % d] + ba); } } LL ans = dp[n][k][0]; if(ans <0) ans =-1; cout << ans <<'\n'; return0;...
比赛链接: Tasks - AtCoder Beginner Contest 281 A,B,C 题目过水,略过不讲 D题意: 给定一个长度为 n(n<=10^2) 的序列,从中选取 K(K<=10^2) 个数,将所有选出的数相加后放入一个集合 S ,求集合 S 中存在…
可以看出,当该位上的元素都相同的时候(第1和第2情况),我们可以通过改变x在该位上的值,来使得每一个元素在该位上是0, 那么最终的最大值在该位上一定是0,会比最大值在该位是1的要小;所以,如果该位元素都相同,那么我们可以不用管这一位了。 大部分情况都是像第三种,那么在这个时候,我们可以先把在该位...
r=n+1;while(l<r){intmid=l+r+1>>1;vector<int>b(mid+1,0);intcnt=0,p=0;for(inti=1;i<=n;i++){if(a[i]<=mid)b[a[i]]++;elsecnt++;}for(inti=1;i<=mid;i++){if(b[i]>=2)cnt+=b[i]-1;elseif(b[i]==0)p++;...
A - Sequence of Strings Original Link 题目大意: 输入N个字符串,倒序输出。 思想: 签到题。 代码: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 #include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>#include<sstream>#include<vector>#include<queue>#include<stack>...
AtCoder Beginner Contest 382 题解 A - Daily Cookie int n,k; cin>>n>>k; string p; cin>>p; int c=0; Rep(i,p.length()) c+=p[i]=='@'; cout<<n-c+min(k,c); 1. 2. 3. 4. 5. 6. 7. B - Daily Cookie 2 int n,k;...
AtCoder Beginner Contest 042题解(ABCD) 传送门 A - Iroha and Haiku (ABC Edition) 签到题,直接判断是否是两个 5 5 5,一个 7 7 7。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+5,M=1e6+5,inf=0x3f3f3f3f,mod=1e9+7; ...
C. Almost Equal 用std::next_permutation枚举全排列。 D. Impartial Gift 把 排序,枚举 ,二分找到 中不超过 的最大的数,如果它不小于 则更新答案。 也可以把两个数组都排序之后双指针。 也可以每次检查两个数组中最大的数,如果差不超过 就是答案,否则更大的数一定不能选。
D. Sequence Query 直接用multiset维护,询问时找到对应的迭代器向前/后移步即可。每次询问复杂度。 E. Putting Candies 显然若干次操作之后,糖果数会进入一个长度不超过的循环,找出这个循环快速计算,总共只需模拟步。 F. Skate 容易发现只有起点和与障碍相邻的点可能到达,总共个,每个点只有4种移动方式,BFS 即可。
AtCoder Beginner Contest 151的数学推导难不难? 组合数在AtCoder Beginner Contest 151中怎么运用? AtCoder Beginner Contest 151有哪些数论相关的题? 思路统计最大值出现的次数,和最小值出现的次数。虽然是每次都是MAX-MIN,我们先求MAX的和,然后再求MIN的和,做差。 这次代码写的真的很漂亮 题目地址: 代码语言...