上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 50 下一页
摘要: 题意:球的编号为 0 - N-1 最开收有 A 个老箱子, 编号为 1 - A-1 把 球的编号%A 就是球所放的箱子数,现在新购入 B 个新箱子,,把所有的老箱子中的按照原来的规则(%B)放入 新箱子中,移动的距离(|老箱子编号-新箱子编号|)为花费,求总花费解题思路: 把n分为较大的一段一段(根据循环节)因为N 较大,所以对这些编号求一个循环节,每个循环节中的状态一样,然后对每个循环节里面的小段分情况讨论!解题代码: 1 #include 2 #include 3 #include 4 long long gcd(long long a, long long b) 5 ... 阅读全文
posted @ 2013-07-27 11:50 dark_dream 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题意:在网格里面给定了 横,竖 两种多米诺骨牌,同向的不可以覆盖,不同向的可以覆盖,问你最多去掉多少个有覆盖的多米诺,使得网格内剩余的多米诺骨牌最多解题思路:一.搜索 (1),分别对横竖两种不同的多米诺建图(同一块标记),然后根据某个封闭覆盖区域的交叉搜索可得到横竖的走向次数,贪心最大可得。(2).直接建图, 有向深搜,然后面积/2二,二分匹配,解题代码:(第一种) 1 #include 2 #include 3 #include 4 #include 5 int map[200][200]; 6 int map1[200][200]; 7 int visit[200][... 阅读全文
posted @ 2013-07-25 21:41 dark_dream 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列,从前往后取,然后给出一个可以从前面加和从后面加的特殊栈,但是这个栈必须保持递增,问你栈的最长长度为多少解题思路:从后往前枚举第一个加入栈的队列,在求从后同时求不递增,不递减序列,然后在序列中找最小重复的,对于这个点的最大长度就是两个长度相加再减去最小重复的。解题思路:// File Name: e.c// Author: darkdream// Created Time: 2013年07月25日 星期四 10时17分58秒#include#include#include#include#include#includeint a[100005];int stackup[100 阅读全文
posted @ 2013-07-24 21:55 dark_dream 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4607题意:给定一个简单图,向你多次询问访问n个点所需要的最少步数解题思路:找出这个图中节点之间的最大长度(用递归和dp) , 然后如果点数小于(最大长度+1),那么步数就是(点数-1),如果点数大于最大长度中的点,则步数为最大长度 + (点数 - 最大长度 - 1) * 2 ;解题代码:// File Name: h.c// Author: darkdream// Created Time: 2013年07月23日 星期二 21时20分37秒#include#include#include#inc 阅读全文
posted @ 2013-07-24 16:33 dark_dream 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362 阅读全文
posted @ 2013-07-21 21:27 dark_dream 阅读(107) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/jackyguo1992/article/details/9372489 阅读全文
posted @ 2013-07-20 21:09 dark_dream 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个队伍比赛,比赛的规则是,如果人数是奇数,则任意两个队伍都要比直接决出冠军(n*(n-1)/2),如果人数是偶数的话,任意两个队比赛(n/2),给出你比赛次数,让你求n解题思路:假设队伍大小为(2^p*x)则用枚举p 二分找x 就能得出答案,不过要注意数据范围!!解题代码: 1 // File Name: 325b.c 2 // Author: darkdream 3 // Created Time: 2013年07月19日 星期五 16时44分33秒 4 5 #include 6 #include 7 #include 8 #include 9 #include10 #incl.. 阅读全文
posted @ 2013-07-19 20:53 dark_dream 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个网格,然后其中的 '.' 中可以建塔,有两种塔,绿塔可以装100人,红塔可以容纳200人不过必须要边上有绿塔(同边)的时候才能建造,对一个 '.'格子有三种操作,建立绿塔,摧毁塔,建立红塔,让你给出一种方案使得容纳总人数最多解题思路:先把每一个 ‘.’ 建立绿塔,可以把每 一块 独立的 '.' 单独出来bfs 然后从栈尾的点一直摧毁建立红塔一直到栈只剩一个元素,就这样就可以了!!解题代码: 1 // File Name: d.c 2 // Author: darkdream 3 // Created Time: 2013年07月18 阅读全文
posted @ 2013-07-19 13:46 dark_dream 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题意:给定你n个哑铃,每个哑铃都有质量和价格两个属性,要你把它分为k个一组;分组要求为,每组哑铃数相同,同一组内哑铃质量不同,不同组内哑铃质量必须一一相同,问你最多能分成多少组(如果有 组数 相同的组合,输出总花费最大的那个方案)解题思路:用结构体数组 list 存储哑铃,然后在哑铃质量的基础上对花费进行从大到小的排序(把哑铃按照质量在数组中分为不同的堆),然后用 因为哑铃的质量比较小,所以我们用 hash 数组(结构体 包含这个值第一次在lish出现的位置 和 它的个数 )对不同质量的进行统计, 然后对 hash 中的 个数 进行排序, 就能知道可以得出几组,然后在 通过 hash ... 阅读全文
posted @ 2013-07-18 19:17 dark_dream 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个序列,告诉你里面要有多少个0 和 1 要求替换次数最小得出要求序列解题思路:模拟替换解题代码:// File Name: e.c// Author: darkdream// Created Time: 2013年07月17日 星期三 09时41分24秒#include#include#include#include#include#includechar str[10000];int visit[10000];int main(){ //freopen("/home/plac/problem/input.txt","r",stdin); / 阅读全文
posted @ 2013-07-18 15:33 dark_dream 阅读(238) 评论(0) 推荐(0) 编辑
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 50 下一页