【初中部 NOIP提高组 】模拟赛C
chiyankuan
这个作者很懒,什么都没留下…
展开
-
2016.09.10【初中部 NOIP提高组 】模拟赛C
T1:这题有一个计算公式:ans=C(n+m,m)-C(n+m,m-1)(怎样推出来的我也不知道)。因为这里一定能整除,所以不需要使用高精度除法,直接分解质因数再用高精度计算就行了。T2:因为最终结果每个位上的数字只可能是0和1,所以我们就用dfs枚举最终结果。(最终结果T3:用f[i]表示把i个格子放入禁区里的方案数,ans=n!-f[1]*(n-1)!+f[2]*(n-1)!-f[3]原创 2016-09-10 17:32:58 · 263 阅读 · 0 评论 -
2016.08.17【初中部 NOIP提高组 】模拟赛C
T1:先把所有的白点保存进一个队列里,然后对这个队列进行广搜。T2:枚举所有的基地,每一次都以这个基地为起点,进行一次SPFA,然后求出有多少个点符合条件,输出即可。T3:先把每两个点间的距离求出来,然后根据距离排序(从小到大)。接着运用克鲁斯卡尔算法选择前n-s条边,最后的答案就是这n-s条边中的max。T4:这题用dfs求出每一个点以这个点为根的点的数量(包括自己),然后判断每一个原创 2016-08-17 16:12:40 · 254 阅读 · 0 评论 -
2016.10.29【初中部 NOIP提高组 】模拟赛C
T1:这题的正解是动态规划,设f[i]表示到第i个人的最大组数,则f[i]=max(f[j])+1(1T2:这题用的方法十分巧妙。因为最后a,b之中一定有一个为n,我们不妨设a=n,那么我们可以枚举b的值,然后求出从(n,b)到(1,1)要多少步(每一次都是大数减小数),最后选出最小就可以了。T3:这题因为d操作可以撤销d操作,那么我们可以保存下每一次操作的序列,如果是删除原创 2016-11-25 20:10:26 · 169 阅读 · 0 评论 -
2016.12.03【初中部 NOIP提高C组】模拟赛
T1:直接广搜。但比赛时以为广搜会超时,于是打了个SPFA,但SPFA反倒潮湿了。T2:待更新。比赛时用了dg+dp,但得的分还没有dg+dg得的分多。因为dp的循环范围很大。下次做题时不能以为dp一定比dg快,要分析复杂度。T3:首先设那个长度为n的字符串为a串,则那个危险串为b串。设f[i][j]表示到a串的第i位是b串匹配到了第j位。40分:b串中没有重复字符原创 2016-12-05 19:03:57 · 322 阅读 · 0 评论 -
2016.12.10【初中部 NOIP提高C组】模拟赛
T1:通过暴力找规律发现如果输入的数是2的k次方,就输出YES,否则输出NO。T2:把所有数从小到大排序,然后把相邻两个数的差存到一个数组里,再把这个数组从小到大排序,答案就是这个数组的前k个数的和。T3:一开始用暴力,发现会超时。然后在暴力的基础上想到dp。先求出n的因数,然后把所有的因数按从小到大存到一个数组里,设这个数组为a。设f[i][j]表示前i个数选了j原创 2016-12-10 15:59:37 · 251 阅读 · 0 评论 -
2016.09.24【初中部 NOIP提高组 】模拟赛C
T1:这题先求出两人一共用了多少电,然后二分枚举第一个人的用得电量就行了。T2:这题的ans就是max(ans1,ans2)。ans1表示选取k段的最大和,ans2表示所有数的和-选取k段的最小和的差。现在我们要用dp求出ans1和ans2。设f[i][j][1]表示第i个位置选入k段当中,目前已选了j段的最大值。则f[i][j][0]表示第i个位置不选入k段当中,目前已选了j段的原创 2016-09-25 14:55:58 · 255 阅读 · 0 评论 -
2016.09.17【初中部 NOIP提高组 】模拟赛C
T1:这题直接用递归暴力就行了,比赛时我因为一个换行符的问题只有20多分......T2:这题用dp。设f[i][1]表示i点选进集合里的集合个数,这则f[i][0]表示i点不选进集合的集合个数。f[i][1]=f[j[1]][0]*f[j[2]][0]...*f[j[n]][0],j表示i的儿子,n表示i的儿子的个数。f[i][0]=(f[j[1]][1]+f[j[1]][0])(f原创 2016-09-25 14:38:53 · 193 阅读 · 0 评论 -
2016.09.03【初中部 NOIP提高组 】模拟赛C
T1:这一题用一个dfs从根开始遍历树,每到一个点i都记录一下b[i]和f[i]。其中b[i]表示到i点的时间,f[i]表示完成以i点为根的树的遍历时间。如果点x是点y的祖先,那么b[x]=f[y]。T2:每个人的期望得分=sum((x-y)^2)/n,x代表这个人的实力值,y代表每一个实力比x若的人的实力值,n代表一队的人数。最终ans=A队的实力值和减去B队的实力值和。原创 2016-09-09 15:42:57 · 353 阅读 · 0 评论 -
2016.11.05【初中部 NOIP提高组 】模拟赛C
T1:设f[i]表示到i个烽火台而且第i个台必选的最小代价。则f[i]=min(f[j])+a[i](i-mT2:这一题的整解是水法.用s[i]表示a[1]到a[i]的和,求出s之后用二重循环枚举所选择序列的开头和结尾,然后判断这一段的和是否是n的倍数,如果是则输出。T3:用f[i][j]表示前第i个村庄选了j个邮局,且第i村庄必选的最小花费。则我们要用一个k来枚举1到i-原创 2016-11-28 12:14:07 · 242 阅读 · 0 评论