CF # 92 (Div. 2 Only)
2012-12-26 15:27
309 查看
伟健昨晚说今早要早起,估计现在已经到了吧,天府之国,ACM的征程。
昨晚CF 92 (Div. 2)。开始前还以为难度会和之前一样……酱油。谁知道并非如此。
最后又是遗憾了。
A题小水。
题意:一条队伍n个人,某个人能确定他前面有不少于a个人,后面不多于b个人。求可能站位的数目。
思路:如果把人标号成1到n 那么可能的站位只可以是[a+1,n]和[n-b,n]的交集。
不知道是不是本人脑袋迟钝还是那时候没入状态,判定条件都想了半天,惭愧,不过还好可以拿来热热脑子。
B题
题意:给n个k位数(n,k都小于8)。现在可以对这些数字的数码重新安排次序(例如1234可以变成3214等等)不过要求n个数字重排的方式要一致(1234,5678 →3214,7658)。
经过某一种变换后,n个数的最大值和最小值之差为x,求x最小值。
思路:很明显的DFS,生成每一种可能的变换,然后用每一种变换处理字符串得到新的字符串,再用sscanf得到这些数字,x就不难求得了。
C题挂了。。。。
题意:给出一个字符串s,其长度为len
问是否有一种变换能让s满足这个条件:
对于任意素数p 思路:题意其实挺拗口的。换一个说法就是:在1~len中找出素数p,s在p的倍数的位置全部是同一个字符。
***然而这题是有一个潜在性质的***
假设len=10,那么符合的素数有2,3,5,7;也就是说
2,4,6,8,10上的字符要一致;
3,6,9上的字符要一致;
5,10上的字符要一致
7上的字符要一致
能看出:
只要len/p<2 可以不作考虑,因为只有它自己一个位置。
len/p>=2的话,他们的字符也是和2的倍数那些一致,因为无论p是多少,p的二倍也是2的p倍。
故可以先统计以上这些数字有多少(注意不得重复统计6,12这类)然后和s字符最多的数目作比较,
s能提供足够的字符就是yes 反之当然是no了。字符串处理处理就得了
今天起来发现他挂了……擦!
错在统计那些数字的时候用了容斥定理。 没考虑素数很多的情况下会超时(事实上二三十个就是极限了。更别说1000以内那二百多个了)。其实根本不需要容斥定理。直接设置一个标记数组,然后用这些素数遍历标记的,每有新标记就计数。len<=1000的数据根本不用担心超时。真心2了。
D题未解决
题意:要求从(x1,y1)走到(x2,y2),走得时候每一次只能走相邻的四个(上下左右)。有这样一些点被定义为坏点
(x+y)%2a==0或者(x-y)%2b==0 其中之一满足就算是坏点。
求走过坏点的最小值。
思路:那两个条件可以让我们在图上划出许多许多这样的直线
x+y = 2a*i(i是整数)
x-y = 2b*j(j是整数)把图分成若干个方形。
时间到。然后就没然后了。
个人估计a=1或b=1的情况需要特判。
总结:哎,本来test之前排名又是200+很靠前的样子的。c题一个小疏忽就断送了大好排名了。不是第一次啦。
感觉自己水平应该是有的了,就老是各种差一点,然后各种遗憾。擦!!!
最后,伟健比赛要加油啊,保持平常心,才能有好发挥。
培鸿君啊,多做点CF啦。我们要一齐努力才行的嘛- -
昨晚CF 92 (Div. 2)。开始前还以为难度会和之前一样……酱油。谁知道并非如此。
最后又是遗憾了。
A题小水。
题意:一条队伍n个人,某个人能确定他前面有不少于a个人,后面不多于b个人。求可能站位的数目。
思路:如果把人标号成1到n 那么可能的站位只可以是[a+1,n]和[n-b,n]的交集。
不知道是不是本人脑袋迟钝还是那时候没入状态,判定条件都想了半天,惭愧,不过还好可以拿来热热脑子。
B题
题意:给n个k位数(n,k都小于8)。现在可以对这些数字的数码重新安排次序(例如1234可以变成3214等等)不过要求n个数字重排的方式要一致(1234,5678 →3214,7658)。
经过某一种变换后,n个数的最大值和最小值之差为x,求x最小值。
思路:很明显的DFS,生成每一种可能的变换,然后用每一种变换处理字符串得到新的字符串,再用sscanf得到这些数字,x就不难求得了。
C题挂了。。。。
题意:给出一个字符串s,其长度为len
问是否有一种变换能让s满足这个条件:
对于任意素数p 思路:题意其实挺拗口的。换一个说法就是:在1~len中找出素数p,s在p的倍数的位置全部是同一个字符。
***然而这题是有一个潜在性质的***
假设len=10,那么符合的素数有2,3,5,7;也就是说
2,4,6,8,10上的字符要一致;
3,6,9上的字符要一致;
5,10上的字符要一致
7上的字符要一致
能看出:
只要len/p<2 可以不作考虑,因为只有它自己一个位置。
len/p>=2的话,他们的字符也是和2的倍数那些一致,因为无论p是多少,p的二倍也是2的p倍。
故可以先统计以上这些数字有多少(注意不得重复统计6,12这类)然后和s字符最多的数目作比较,
s能提供足够的字符就是yes 反之当然是no了。字符串处理处理就得了
今天起来发现他挂了……擦!
错在统计那些数字的时候用了容斥定理。 没考虑素数很多的情况下会超时(事实上二三十个就是极限了。更别说1000以内那二百多个了)。其实根本不需要容斥定理。直接设置一个标记数组,然后用这些素数遍历标记的,每有新标记就计数。len<=1000的数据根本不用担心超时。真心2了。
D题未解决
题意:要求从(x1,y1)走到(x2,y2),走得时候每一次只能走相邻的四个(上下左右)。有这样一些点被定义为坏点
(x+y)%2a==0或者(x-y)%2b==0 其中之一满足就算是坏点。
求走过坏点的最小值。
思路:那两个条件可以让我们在图上划出许多许多这样的直线
x+y = 2a*i(i是整数)
x-y = 2b*j(j是整数)把图分成若干个方形。
时间到。然后就没然后了。
个人估计a=1或b=1的情况需要特判。
总结:哎,本来test之前排名又是200+很靠前的样子的。c题一个小疏忽就断送了大好排名了。不是第一次啦。
感觉自己水平应该是有的了,就老是各种差一点,然后各种遗憾。擦!!!
最后,伟健比赛要加油啊,保持平常心,才能有好发挥。
培鸿君啊,多做点CF啦。我们要一齐努力才行的嘛- -
相关文章推荐
- Codeforces Beta Round #92 (Div. 2 Only) B. Permutations
- Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
- Codeforces Beta Round #92 (Div. 1 Only)
- Codeforces Beta Round #85 (Div. 2 Only) A题
- Codeforces Beta Round #83 (Div. 1 Only) E.Darts 凸多边形面积交
- CF #287 div2 C Guess Your Way Out!
- Codeforces Round #437 (Div. 2 C. Ordering Pizza 贪心 only two types of pizza
- 【CS Round #44 (Div. 2 only) D】Count Squares
- #9 (Div. 2 Only) B. Running Student (枚举)
- CF #324 DIV2 C题
- Codeforces Beta Round #91 (Div. 1 Only) E. Lucky Array
- Codeforces Beta Round #72 (Div. 2 Only)D. Doctor
- Codeforces Beta Round #80 (Div. 2 Only)
- Codeforces Beta Round #92 (Div. 2 Only)深度优先遍历
- Codeforces Beta Round #83 (Div. 2 Only)
- CF #230 (Div. 2) A
- Codeforces Beta Round #18 (Div. 2 Only) C. Stripe 前缀和
- CF #309 (Div. 2)
- Codeforces Beta Round #12 (Div 2 Only)
- BFS Codeforces Beta Round #94 (Div. 2 Only) C. Statues