摘要:
题意:征用一些男生和女生,每个应都要给10000元,但是如果某个男生和女生之间有关系,则给的钱数为10000减去相应的亲密度,征集一个士兵时一次关系只能使用一次。分析:kruskal求最小生成树,注意男生和女生用偏移量处理。代码:#include#include#includeus... 阅读全文
摘要:
题意:又是农夫和牛的故事。。。有m*n个黑白块,黑块的背面是白块,白块背面是黑块,一头牛踩一块,则这个块的上下左右的方块都会转动,问至少踩多少块,才会使所有块都变成白色?分析:还是开关问题,同样是一个块的转动会影响其他块的状态,但这次不是简单的线性排列,也不能只踩黑块。首先根据字典... 阅读全文
摘要:
题意:A,B,C,D四组数中各取一个数,使这四个数相加为0,问有多少组取法?分析:四个数列有n4种取法,规模较大,但是可以将他们分成AB,CD两组,分别枚举,最后再合并。代码:#include#include#includeusing namespace std;typedef l... 阅读全文
摘要:
题意:N头牛站成一条线,分别朝向前后两个方向,机器可以使连续K头牛同时改变方向,要求所有牛最终朝向前方,问机器操作次数的最小值及此时的最小K值。分析:第一眼看感觉是二分搜索K,再仔细读题, please help him determine the minimum value o... 阅读全文
摘要:
题意:每页书都对应一个知识点,问最少看连续的多少页,才能把所有知识点都看完?分析:《挑战程序设计竞赛》介绍的尺取法,反复推进区间的开头和结尾,来求取满足条件的最小区间,先确定好一个满足条件的区间,然后不断往后移,找满足条件的区间。代码:#include#include#includ... 阅读全文
摘要:
题意:N 为合数,对于任意一个在(1,N)之间的数满足 anmodn=a,则称N为Carmichael number,对于给定的N,判断是否为Carmichael number。分析:素数区间筛法+快速幂代码:#include#include#includeusing namesp... 阅读全文
摘要:
题意:N 为合数,对于任意一个在(1,N)之间的数满足 anmodn=a,则称N为Carmichael number,对于给定的N,判断是否为Carmichael number。分析:素数区间筛法+快速幂代码:#include#include#includeusing namesp... 阅读全文
摘要:
题意:给定N个位置,把C头牛分别放入,求相邻两头牛的最大距离。分析:即为求两头牛之间最小距离的最大值。二分搜索答案。代码:#include#include#includeusing namespace std;const int maxn = 100005, INF =0x3fff... 阅读全文
摘要:
题意:给定N个位置,把C头牛分别放入,求相邻两头牛的最大距离。分析:即为求两头牛之间最小距离的最大值。二分搜索答案。代码:#include#include#includeusing namespace std;const int maxn = 100005, INF =0x3fff... 阅读全文
摘要:
题意:给定一系列长度的电缆,将他们切成K条相等长度的电缆,问每条最长有多长?分析:对长度进行二分,判断能否满足K条。二分搜索: 在求解最大化或最小化问题中,能够比较简单的判断条件是否满足,那么使用二分搜索法可以很好地解决问题。结束判定: 正常处理整数时,对于[l,r)结束范围即为... 阅读全文