上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 34 下一页
摘要: 题意:有两种汉堡给2n个孩子吃,每个孩子在吃之前要抛硬币决定吃哪一种汉堡。如果只剩一种汉堡,就不用抛硬币了。求最后两个孩子吃到同一种汉堡的概率。分析:可以从反面思考,求最后两个孩子吃到不同汉堡的概率。因为最后两个汉堡是不同的,所以前面的2n-2个孩子吃汉堡之前一定都是要抛硬币的。所以,吃两种汉堡的孩... 阅读全文
posted @ 2015-02-12 19:20 AOQNRMGYXLMV 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 题意:long long H(int n){ long long res = 0; for( int i = 1; i 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int T; 8 long long n; ... 阅读全文
posted @ 2015-02-12 17:56 AOQNRMGYXLMV 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 而是Div2的最后一题,当时打比赛的时候还不会最大流。自己能够把它写出来然后1A还是很开心的。题意:有n个不小于2的整数,现在要把他们分成若干个圈。在每个圈中,数字的个数不少于3个,而且相邻的两个数之和是质数。分析:因为每个数都不小于2,所以相加得到的质数一定是奇数,那么在某个圈中,一定是奇偶相间的... 阅读全文
posted @ 2015-02-11 20:39 AOQNRMGYXLMV 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个有向带权图,找到若干个圈,使得每个点恰好属于一个圈。而且这些圈所有边的权值之和最小。分析:每个点恰好属于一个有向圈 就等价于 每个点都有唯一后继。所以把每个点i拆成两个点,Xi和 Yi ,然后求二分图最小权完美匹配(流量为n也就是满载时,就是完美匹配)。 1 #include 2... 阅读全文
posted @ 2015-02-10 13:44 AOQNRMGYXLMV 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个有向带权图,求从起点到终点的两条不相交路径使得权值和最小。分析:第一次听到“拆点法”这个名词。把除起点和终点以外的点拆成两个点i和i',然后在这两点之间连一条容量为1,费用为0的边。这样就保证了每个点最多经过一次。其他有向边的容量也是1然后求从起点到终点的流量为2(这样就保证了是两条路... 阅读全文
posted @ 2015-02-09 23:44 AOQNRMGYXLMV 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 网络流不难写,难的建一个能解决问题的模型。。即使我知道这是网络流专题的题目,也绝不会能想出这种解法,=_=||题意:给出一个矩阵的 前i行和 以及 前i列和,然后找到一个满足要求的矩阵,而且每个元素在1~20之间。分析:先求出每行的元素和A'i 每列的元素和B'i紫书上说建一个二分图,每行是一个X... 阅读全文
posted @ 2015-02-09 00:09 AOQNRMGYXLMV 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个插座,m个设备以及k种转化器(每种转化器视为有无限个)。转换器A->B可以将A类型的插头转化成B类型的插头,所以可以插在B类型的插座上。求最少剩多少不匹配的设备。分析:抛开转换器不讲,插头插在插座上就是一个最大二分图匹配。可以用最大流的算法,增加一个连接每个插头的源点s和连接每个插座的汇... 阅读全文
posted @ 2015-02-08 20:14 AOQNRMGYXLMV 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个01串,选一个长度至少为L的连续子串,使得串中数字的平均值最大。 分析: 能把这道题想到用数形结合,用斜率表示平均值,我觉得这个想法太“天马行空”了 首先预处理子串的前缀和sum,如果在坐标系中描出(i, sum[i])这些点的话。 所求的平均值就是两点间的斜率了,具体来说,在连续子 阅读全文
posted @ 2015-02-08 11:16 AOQNRMGYXLMV 阅读(530) 评论(2) 推荐(0) 编辑
摘要: 题意:给出一个序列,删掉它的一个连续子序列(该子序列可以为空),使得剩下的序列有最长的连续严格递增子序列。分析:这个可以看作lrj的《训练指南》P62中讲到的LIS的O(nlogn)的优化变形过来的问题。预处理:Li是第i个元素Ai向左延伸的最大长度,即[i, i + Li - 1]是一个递增区间同... 阅读全文
posted @ 2015-02-07 18:32 AOQNRMGYXLMV 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口挺有意思的,如果符合条件右端点一直向前走,不符合的话,左端点向前走。 1 #include 2 using namespace std; 3 4 set Set; 5 6 const int maxn = 1000000 + 10; 7 int a[maxn]; 8 9 int Sc... 阅读全文
posted @ 2015-02-06 22:44 AOQNRMGYXLMV 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 如果,没有紫书上的翻译的话,我觉得我可能读不懂这道题。=_=||题意:平面上有n个点,不是白点就是黑点。现在要放一条直线,使得直线一侧的白点与另一侧的黑点加起来数目最多。直线上的点可以看作位于直线的任意一侧。分析:首先假设直线经过两个点,否则可以移动直线使其经过两个点,并且总数不会减少。所以,我们可... 阅读全文
posted @ 2015-02-06 20:04 AOQNRMGYXLMV 阅读(1092) 评论(5) 推荐(1) 编辑
摘要: 题意:直线上有n个等距的酒庄,每个酒庄对酒的需求量为ai(正数说明需要买酒,负数需要卖酒),而且保证所有的酒庄供需平衡。搬运x个单位的酒到相邻的酒庄需要x个劳动力,求要使所有酒庄供需平衡最少需要多少劳动力。分析:第一个酒庄要买a1个单位的酒,那么这些酒可能是直接由第二个酒庄生产的,也可能是其他酒庄运... 阅读全文
posted @ 2015-02-06 11:14 AOQNRMGYXLMV 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题意较复杂,请参见原题=_=||没什么好说的,直接枚举每个排列就好了,然后记录最小带宽,以及对应的最佳排列。STL里的next_permutation函数真是好用。比较蛋疼的就是题目的输入了。。 1 #include 2 using namespace std; 3 4 const int ma... 阅读全文
posted @ 2015-02-05 23:32 AOQNRMGYXLMV 阅读(314) 评论(2) 推荐(0) 编辑
摘要: 虽然算法还没有理解透,但以及迫不及待地想要A道题了。非常裸的最大流,试试lrj的模板练练手。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 const int maxn ... 阅读全文
posted @ 2015-02-05 16:44 AOQNRMGYXLMV 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题意:要从四个数组中各选一个数,使得这四个数之和为0,求合法的方案数。分析:首先枚举A+B所有可能的值,排序。然后枚举所有-C-D的值在其中用二分法查找。 1 #include 2 #include 3 using namespace std; 4 5 const int maxn = 400... 阅读全文
posted @ 2015-02-04 19:59 AOQNRMGYXLMV 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个国家,要设计一栋长方体的大楼,使得每个单位方格都属于其中一个国家,而且每个国家都要和其他国家相邻。分析:紫书上有一种很巧妙的构造方法:一共有2层,每层n×n。一层是每行一个国家,另一层是每列一个国家。 1 #include 2 #include 3 #include 4 using... 阅读全文
posted @ 2015-02-04 18:11 AOQNRMGYXLMV 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 题意:一个正方形中有n道竖直的墙,每道墙上开两个门。求从左边中点走到右边中点的最短距离。分析:以起点终点和每个门的两个端点建图,如果两个点可以直接相连(即不会被墙挡住),则权值为两点间的欧几里得距离。然后求起点到终点的最短路即可。 1 #include 2 #include 3 #incl... 阅读全文
posted @ 2015-02-04 17:00 AOQNRMGYXLMV 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 这题求解的过程和选择排序非常相似。反转的过程中分为无序(在前面)和有序(在后面)两个部分,一开始视为全部为无序。在无序部分中找到最大的元素,先把它翻到最前面,然后再反转到无序部分的最后面。这样该元素就成为有序的部分。而且在算法执行的过程中不会影响到已经构造好的有序部分。 1 #include 2 ... 阅读全文
posted @ 2015-02-04 14:36 AOQNRMGYXLMV 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 本来是当做水题来做的,后来发现这道题略坑。首先输入的字符串可能是空串,所以我用了gets函数,紧接着就被scanf("%d", &n)后面的换行符坑掉了。于是乎再加一句getchar() 1 #include 2 #include 3 #include 4 using namespace st... 阅读全文
posted @ 2015-02-03 23:44 AOQNRMGYXLMV 阅读(166) 评论(0) 推荐(0) 编辑
摘要: A. Fox And Snake代码可能有点挫,但能够快速A掉就够了。 1 #include 2 3 int main() 4 { 5 //freopen("in.txt", "r", stdin); 6 7 int n, m; 8 scanf("%d%d", &n, ... 阅读全文
posted @ 2015-02-03 04:27 AOQNRMGYXLMV 阅读(256) 评论(0) 推荐(0) 编辑
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 34 下一页