- 博客(7)
- 收藏
- 关注
原创 codeforces 300(Round #181)题解
A:我的决策是,首先将一个负数分到第一组,如果所有数乘积为负第三组分一个0,否则,第三组分一个0和一个负数,其他分到第二组B:暴力即可,也可写并查集C:枚举判断答案,重点在组合数取模,除以一个数再取模,只需乘上这个数的乘法逆元再取模即可。根据费马小定理,a^(p-1)=1(mod p) -> a*a^(p-2)=1(mod p),则a^(p-2)就是a的乘法逆元codeD:
2013-04-27 15:22:01 1149 2
原创 codeforces Round #180题解
2A:情况只有3种,全是R,全是L,连续R再连续L,乱搞即可2B:小贪心,往目的地方向走总是没错的1A:随意组合貌似能组合出当前拥有的数字的各种形态?T_T。统计1的个数即可,如果奇数个1,它可以变得多一个,然后如果1的个数大于等于第二个串就是yes1B:贪心即可,从大到小排序,前者相同顺序如果有一个位置大于后者,一定可以成立1C:很好的题,引用CF官方题解的图(红色为a,蓝色为b
2013-04-25 17:34:09 700
原创 Croc Champ 2013 - Round 2 题解
1A:统计第一个数列为1的位置第二个数列为0的个数,第一个数列为0的位置第二个数列为1的个数,和两个数列相同位置均为1的个数,判断即可code1B:搜索,具体实现看代码吧#include#include #include #include #includeusing namespace std;const int N=15,M=1000000007;int an
2013-04-25 17:10:57 606
原创 Croc Champ 2013 - Round 1 题解
A:水题B:水题,只需要记录连得边数的点的个数即可轻易判断C:个人觉得是一个比较蛋疼的题,开始还看错了,以为不允许出现0,>_#include#include#include#includeusing namespace std;const int N=15;int n,tot,a[N],c[N],p[N],w[N],ans[100005][N];void cnt(int
2013-04-19 19:48:05 521
原创 Croc Champ 2013 - Qualification Round题解
A:水题B:水题C:枚举前几个1即可,用set做会方便一些D:构造题,貌似有很多种构造方式。我记录了一下最左面的已经完成构造的位置now,前面的如果a[i]+a[now]上代码:#include #include #include #include #include #include using namespace std;const int N=10005;i
2013-04-19 19:39:38 526
原创 codeforces 295(Round #179)题解
2A:水题,显然每个数字可以调整到任意位置,于是计算每个数字出现个数,如果大于(n+1)/2则不可以,其余的必定成立2B:不错的题。反面考虑比较好,用总数减去所有成立的,即是不成立的方案数1A:水题,可以写线段树,最好的方法显然是差分数组,先差分操作数,再差分值,最后计算即可1B:个人认为是一道非常好的题,考察了一个非常重要,但是特别容易忽视的性质。题意是求每次删点前任意两点间
2013-04-15 20:28:28 925 1
原创 codeforces 288,289(Round #177)题解
2A:水题2B:很容易想到排个序,取中位数即可。将所有数尽量变成中位数即可1A:在后面还可以完成要求不同字母的个数的前提下,前面尽量排ab,然后再排新字母#include#include#include#includeint main(){ int i,n,k; scanf("%d%d",&n,&k); if(k>n || (k==1
2013-04-06 20:17:41 6747
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人