BUPT2017 wintertraining(15) #1 题解】的更多相关文章

我觉得好多套路我都不会ヘ(;´Д`ヘ) 题解拖到情人节后一天才完成,还有三场没补完,真想打死自己.( ˙-˙ ) A - 温泉旅店 UESTC - 878  题意 ​ 有n张牌,两人都可以从中拿出任意张,各自的得分为他们手中牌上的数字的异或和.求A的得分小于等于B的方案数. 题解: ​ DP,\(dp[i][j][k]\)表示前i张牌,使得A得分为j,B得分为k 的案数.\(dp[0][0][0]=1\) \[ dp[i][j][k]=dp[i-1][j][k]+dp[i-1][j\wedge…
这场有点难,QAQ.补了好久(。• ︿•̀。) ,总算能写题解了(つд⊂) A. Beautiful numbers CodeForces - 55D 题意 ​ 求\([l,r](1\le l_i\le r_i\le 9\cdot 10^{18})\)的中的 可以被自己每一位上的数字整除的数 的个数. 题解: ​ 知识:如果m%a=0,则任意x, x%a = (x%m)%a. ​ 2520是2~9的lcm.因此任何时候都有2520%pre_lcm==0. ​ 因为2520%pre_lcm==0,…
拖了一周才完成的题解,抛出一个可爱的表情 (っ'-')╮ =͟͟͞͞❤️.对我来说E.F比较难,都是线段树的题,有点久没写了. A - Infinite Sequence CodeForces - 675A 公差为c,首项为a的等差数列是否有一项等于b. 注意c为0的情况. #include<cstdio> long long a,b,c; int main() { scanf("%lld%lld%lld",&a,&b,&c); if(c==0&am…
下面不再说明题意了请自行读题,直接放contest链接. https://vjudge.net/contest/151607 A.考虑当火车隔k站一停时 区间长度 >= k 的纪念品一定能买到 区间长度 <k 的纪念品最多覆盖一个停靠的站点 求出 n / k 个点, 每个点上覆盖的纪念品数累加即可 k 从 1 到 m 都需要求 我们只要把纪念品按区间长度排序 然后向后扫就可以了 总复杂度 O(nlog^2n) #include <cstdio> #include <algor…
这里这里 A.签到题 #include <cstdio> double a[] = {0.4, 0.16, 0.063, 0.025, 0.010, 0.004}; int main() { int n; double m; scanf("%d", &n);; ;i <= n;i ++) { scanf("%lf", &m); printf("Case #%d: ", i); ) puts("Too B…
龟速补题.目前基本弃坑.已暂时放弃 D.I 两题. 下面不再写题意了直接说解法注意事项之类,直接放contest链接. https://vjudge.net/contest/151537 A.The Perfect Stall 很明显的二分图匹配,可以跑最大流 我是直接写的匈牙利算法,hungary,不是hungry (虽然读音差不多??? 事实证明浪了一个寒假我连hungary算法都不会写了 #include <cstdio> #include <vector> #include…
https://vjudge.net/contest/162590 A: 不难发现,当L=R时输出L,当L<R时输出2. B: 贪心得配对.1和n配 2和n-1配,对与对直接只要花1个代价就可以跳到.所以答案是(n-1)/2 C: 先考虑形式于aaaab的串变形.若有n个a,不难看出次数f[n]=2^n-1.接下来我们对于原串S从左到右扫描,若遇到a则cnt++,若遇到b则ans+=f[cnt] D: 构造aabbaabb..的串即可. E: Ans=max(s[i]). 通过dfs进行染色,对…
BUPT2017 wintertraining(15) #9A 题意 有n个纪念品,购买区间是\([l_i,r_i]\).求每i(1-m)站停一次,可以买到多少纪念品. 题解 每隔d站停一次的列车,一定能买到购买区间的长度≥d的纪念品. 长度比d小但包含了d的倍数的纪念品也可以买到. 所以,如果按长度给纪念品排序,用树状数组维护长度小于当前d的购买区间,那么就可以很快求出每个停靠点(d的倍数)有多少个长度不超过d的纪念品了. 代码 #include <cstdio> #include <…
BUPT2017 wintertraining(15) #8H 题意 求组合数C(n,i),i从0到n,里面有几个奇数. 题解 直接打表的话可能就直接发现规律了. 规律是n的二进制里有几个1,答案就是2的几次方. 证明: lucas定理有:C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 然后取p为2. 所以展开后是C(0,0),C(0,1),C(1,0),C(1,1)的乘积.其中只有C(0,1)=0. 那么C(n,i)%2==1的条件就是n对应位为0,则i对应位必须是0,n对应…
BUPT2017 wintertraining(15) #8G 题意 给一个数组a,有n个数,m次操作.\(N, M ≤ 10^5, |A i| ≤ 10^9, 1 ≤ l ≤ r ≤ N, |d| ≤ 10^4\) 操作有四种, C l r d:更新区间[l,r],值都加上d,并且时间前进1 Q l r:查询[l,r]的区间和 H l r t:查询t时刻的区间和 B t:回到t时刻(一定是历史时刻),且t时刻之后的操作都作废了. 题解 这道题的关键是怎么更新区间和. 本来线段树更新区间和要pu…