赛时写了ABC,D实在没啥思路,然后C又难调...然后就从写完AB时的32名掉到了150+名 T_T 码力不够,思维不行,我还是AFO吧 比赛链接 A - Measure sb模拟,奇数串倒着输出偶数串正着输出 #include <bits/stdc++.h> #define ll long long #define inf 0x3f3f3f3f #define il inline #define in1(a) a=read() #define in2(a,b) in1(a),in1(b) #…
传送门 题意 给出N,K,给出N对数a[i],b[i],选择一些数使得or和小于k且\(max\sum b[i]\) 分析 枚举k的每一个1位,将其删去并让低位全为1,对于每一个这样的数c,如果a[i]|c==c,那么就加上b[i],最后取最大值即可 trick 代码 #include <bits/stdc++.h> using namespace std; #define ll long long #define F(i,a,b) for(int i=a;i<=b;++i) #defi…
当时没做出来,官方题解没看懂,就看别人提交的代码,刚对着别人代码调了几组数据,才发现,思路差不多,不过,原来是这样实现啊,果然我还是很菜 思路:题目要求是选取的这些数字全部进行OR运算,结果<=k,有点贪心的感觉,想到有些数字OR运算之后结果>k,肯定有一位到多位在结果中是1,但是k中是0,但是怎么选择去掉哪个呢?我是想着计算每个数在每一位的贡献,把小的去掉.但是我不会算.调别人的代码才发现,他采取的策略是通过位运算,依次去掉k的每一位1,并且同时把当前位以下的位全部用1补上,然后寻找符合条件…
http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_d 给定N,K和A1...AN,B1...BN,选取若干个Ai使它们的或运算值小于等于K时,使得对应的ΣBi值最大,求最大值. 其实我不大理解为什么要这么弄. 一个数K,如果X小于它,那么K的二进制中第r位是1,X的第r位可以是0或1:但如果K的第r位是0,X的第r位一定是0. 我只能勉强这样想: 可以先选定一个或运算值的上限tmp,如果(Ai|tmp==tmp),那么根据或运算性质当…
http://tenka1-2017.contest.atcoder.jp/tasks/tenka1_2017_c 我怀疑我是不是智障.... 本来一直的想法是能不能构造出答案,把N按奇偶分,偶数好办,但是奇数死活想不出,结果想暴力,显然三种循环是过不了的. 那就直接二重循环暴力,求第三数不就行了啊!!!!哇靠, 这里唯一要注意的是N可能很大,开成long long吧,反正刚开始我int没过,把所有变量都改成long long 就好了. #include<iostream> #include&…
C 签到题,f[i][0/1]表示以i结尾最后一个为白/黑的最小值,转移显然. #include<bits/stdc++.h> using namespace std; ; ]; char s[N]; int main() { scanf("%d",&n); scanf(); ;i<=n;i++) if(s[i]=='.') { f[i][]=f[i-][]; f[i][]=min(f[i-][],f[i-][])+; } else{ f[i][]=f[i-]…
link 题面真简洁 qaq C Stones 最终一定是连续一段 . 加上连续一段 # .直接枚举断点记录前缀和统计即可. #include<bits/stdc++.h> #define rep(i,x,y) for (int i=(x);i<=(y);i++) using namespace std; ; int n,cnt0[N],cnt1[N],ans; char s[N]; int main(){ scanf(); rep (i,,n) cnt0[i]+=s[i]=='#',c…
题意: 给出一个多项式,问有多少个质数\(p\)使得\(p\;|\;f(x)\),不管\(x\)取何值 思路: 首先所有系数的\(gcd\)的质因子都是可以的. 再考虑一个结论,如果在\(\bmod p\)意义下,多项式中存在\((x^p - x)\)这个因式,那么这个质数\(p\)也是可以的 显然\(p \leq n\),那么我们只要枚举每个\(\leq n\)的质数,做模\(p\)意义下的多项式除法,判断余数是否为\(0\)即可. 证明: 充分性:考虑\(p\;|\;f(x)\),即\(f(…
题意: 有\(n\)个石头,每个石头有权值,可以给它们染'R', 'G', 'B'三种颜色,如下定义一种染色方案为合法方案: 所有石头都染上了一种颜色 令\(R, G, B\)为染了'R', 染了'G', 染了'B'的所有石头的权值和,存在一个三角形的三变为\(R, G, B\) 求合法方案数模\(998244353\) 思路: 考虑总方案数为\(3^n\),我们考虑怎么求出不合法的方案数.令\(dp[i][j]\)表示到第\(i\)个石头,两条短边和为\(j\)的方案数 但是我们注意到,如果\…
传送门 \(C\ Stones\) 最后肯定形如左边一段白+右边一段黑,枚举一下中间的断点,预处理一下前缀和就可以了 int main(){ // freopen("testdata.in","r",stdin); n=read(),read(s),res=0x3f3f3f3f; fp(i,1,n){ sum[i][0]=sum[i-1][0],sum[i][1]=sum[i-1][1]; ++sum[i][s[i]=='#']; } fp(i,0,n)cmin(r…