题目连接:http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=347
套题是真TM酸爽。 193∗47∗887∗29
A Applications
英语题 特别复杂的模拟 注意细节 细节 细节 细节 细节 。。。。
B Break Standard Weight
签到题 直接暴力就好了
C Calculate Prime S
理解题意,首先x很明显要求个逆元,因为m不是素数,所以只好用扩展欧几里德求了,
对于S[n] 是很明显的fibonacci数列(S[n]=fib[n+2] ),枚举两个就出来了,别忘了还有空集..
然后就不会了,
最后才知道fibonacci的一个性质
1. gcd(fib(n),fib(m))=fib(gcd(n,m))
证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证 n>m 时 gcd(fib(n),fib(m))=gcd(fib(n−m),fib(m)) ,递归可求 gcd(fib(n),fib(m))=gcd(fib(k),fib(l)) ,最后 k=l ,不然继续递归。 K 是通过展转相减法求出,易证k=gcd(n,m),所以 gcd(fib(n),fib(m))=fib(gcd(n,m)) 。
所以只有当 gcd(n,m)=1或2时(fib[1]==fib[2]==1) fib[n]与fib[m]互质
所以若S[n] 要是一个 PrimeS
则n+2必须是一个质数或者4 ,自己画画就知道为什么4是特殊的了
所以构造一个特殊的素数表
P[i] 3 4 5 7 11 13……………….
所以第K个PrimeS 就是fib[P[k]]
还有一个结论:
计算 (a/b)%c 其中b能整除a
如果b与c互素,则 (a/b)%c=a∗bphi(c)−1
如果b与c不互素,则 (a/b)%c=(a%bc)/b
对于b与c互素和不互素都有 (a/b)%c=(a%bc)/b 成立
就是枚举出能够整除x的PrimeS 用快速幂求取PrimeS
最后计算 就好了 注意下可能会爆int就好了
D Density of Power Network
明白题意让求的是去掉平行线后,线与节点数的比值就好了
签到题 暴力做
E Egg Painting
不会 还找不到题解…
F Friends
这个题比较6
确定题意后,直接暴力加边就好了,直到不能在加边为止
G Give Me Your Hand
看题解是个dp 然而dp废。。。。
来日在补
H Hard to Play
签到题 明白题意直接做就好了,
I In 7-bit
阅读题 明白题意 直接处理就好了
J Java Beans
签到题 找环上和最大的长度为k的连续区间, 前缀和处理然后枚举即可.
K Kindergarten Election
题面比较有意思,一群幼儿园同学要投票选个老大,(不能选自己),每个人都有一个心仪的老大目标,然后1号小朋友要当老大,可以拿糖贿赂其他小朋友来确保自己当老大。问1号小朋友最少需要多少个糖果能确保自己当上老大。
枚举加贪心,
枚举1号小朋友当上老大时的票数,然后贪心选择贿赂谁,维护下结果的就行了。
题目不难,就是不好想到枚举,想直接进行贪心,然后就会各种GG
—————————————————————————————-
最后发现这套题是之前省选训练过的题..
总结:
英语读题水平太菜,
模拟水平太差,
代码能力有待加强
思维不够开阔,胆子不够大,至少暴力的想法是有的 但是却不敢写.
写代码的速度可以放慢些,写快了细节上出错率大.