AtCoder Beginner Contest 129 ABCD 签到(A、B、C过水已隐藏) View Code E 发现x^y=x+y时,x,y没有同时为1的位。于是数位DP,f[i][0/1]表示到了第i位是否达到上限,发现该位取1有2种方案,取0有1种,大力O(n)DP即可。 View Code F 设计算到x时,答案是ans,于是计算x后,ans=(ans*10i+x)%m,其...
思路:刚开始傻逼傻逼的对每个点往四个方向延伸,然后就获得了一个TLE。从左上对每个点统计从它的左方和上方分别能走多远,从右下对每个点统计从它的右方和下方分别能走多远 然后再对每一个点求一边四个方向的和的最大值 View Code E - Sum Equals Xor 题意:给一个二进制数LL,问有多少对(a,b)(a,b)满...
AtCoder Beginner Contest 159 (E,F(dp)) E - Dividing Chocolate 题意:给你h长,w宽矩阵 的黑白巧克力,1代表是白色,0是黑色 每次可以行切一刀,列切一刀,一切就要切到底的那种 问最多切多少刀,使得每一块巧克力中白色的数量小于等于k个 做法:经典做法了,最近牛客就遇到了两次,由于n特别小,那么对行进行暴力...
signed main() { int n; cin >> n; vector<int> a(n + 1); for(int i = 1; i <= n; i ++){cin >> a[i];} auto check = [&] (int mid){ int now = mid; for(int i = 1; i <= n; i ++){ now += a[i]; if(now < 0) return false; } return true; }; int l...
所以我们可以通过加入一个环来进行我们的dp。值得注意的是,如果我们给定了一个环,那么其排列就已经确定唯一了。 比如这个环的排列 只能是[2,3,4,1],因为图的一条边就确定了排列中第几位上应该是几。 所以我们在dp的时候可能会产生一些重复,需要特殊的处理。
AtCoder Beginner Contest 190 C Bowls and Dishes(暴搜),BowlsandDishes题意:给你n个dish。有m个条件。一个条件要成立,那么它要两个给定的dish中有球。现在又k个人。
A.First ABC 2模拟即可。 inlinevoidqfl_zzz(){ll n=read();string s=sread();for(ll i=1;i<=n-2;++i)if(s[i]=='A'&&s[i+1]=='B'&&s[i+2]=='C'){writen(i);return;}writen(-1);} B.Prefix and Suffix模拟即可。 inlinevoidqfl_zzz(){ll n=read(),m=read();string s=s...
Hello Codeforces! Did you enjoy theAtCoder Beginner Contest 128? A Japanese editorial isalready out, but unfortunately there is no English editorial, so I translated it into English experimentally. Note that this is an unofficial one; AtCoder has no responsibility for this editorial. Also, I di...
voidsolve(){string s;cin>>s;intflag1=0,flag2=0,flag3=1;for(inti=0;i='A'&&s[i]<='Z'){flag1=1;t=s[i]-'A'+'A';}else{flag2=1;t=s[i]-'a'+'a';}cnt[t]++;if(cnt[t]>=2){flag3=0;break;}}if(flag1&&flag2&&flag3)cout<<"Yes"<<endl;elsecout<<"No"<<endl;}...
题意: 题解 利用一个数能被3整除当且仅当其各位之和sum能被3整除。 如果sum本身能被3整除,则不需要删除。 否则统计原数的每一位数%3后的个数,比较%3 =1与%3 =2 的个数,有两种方法可以使其sum变为 %3 =0: %3=1 与%3=2,相互抵消,还剩下的差值即为答案。