2014年1月20日

USACO 2.2.3 Runaround Numbers

摘要: 题意:求比给出的M大的循环数, 循环数,从位置0开始数arr[0]个数,然后再从位置i数arr[i]个数,最后回到起点解法:简单模拟/*ID: lsswxr1PROG: runroundLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define USACO# 阅读全文

posted @ 2014-01-20 12:19 小书包_Ray 阅读(313) 评论(0) 推荐(0) 编辑

★USACO 2.2.2 subset problems

摘要: 题意:给定整数N,求出将集合[1...N]划分成两组,使得两组和相等的方案的个数解法: 直接枚举时间复杂度达不到要求。采用递推的方法,回忆经典的背包问题 f[i][v] = max{f[i - 1][v], f[i - 1][v - c[i]] + w[i]}即,第i个物品选或者不选,结合前i-1种物品的情况可以递推出所有的结果 将本题转换一下, 所有数的和为sum,那么每一组的和必为sum /2 (如果sum是偶数),问题就是:在[1...N]的集合中找到数字之和 为sum /2 的方案个数, 状态变量: f[i][sum] 在[1...i]集合中和为sum的方案的... 阅读全文

posted @ 2014-01-20 10:19 小书包_Ray 阅读(203) 评论(0) 推荐(0) 编辑

2014年1月19日

USACO 2.2.1Preface Numbering

摘要: 题意:给定整数N, 采用罗马数字的方式表达,统计每个罗马字符的个数,从小到大输出解法:枚举,统计每一个数字的字符数,然后输出/*ID: lsswxr1PROG: prefaceLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define USACO#ifdef 阅读全文

posted @ 2014-01-19 16:56 小书包_Ray 阅读(254) 评论(0) 推荐(0) 编辑

USACO 2.1.5 Hamming Codes

摘要: 题意:给出N, b, D。找到N个数字,使得两两之间的汉明距离(Hamming distance)大于等于D,每个编码的位数为b输出要求,每行十个数,且保证数字在b进制下值最小解法:枚举,从1开始(必须包含0),主要是位运算,参考nocow/*ID: lsswxr1PROG: hammingLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include 阅读全文

posted @ 2014-01-19 11:14 小书包_Ray 阅读(250) 评论(0) 推荐(0) 编辑

USACO 2.1.4 Healthy Holsteins

摘要: 题意:给奶牛喂营养素,一共有V种维生素需求,然后有G勺喂养(每勺只喂一次),并给出每勺喂养所获得的对应维生素量,给出至少V种维生素所要达到的需求,求出最少的勺数,如果勺子数相同,勺子编号尽量小解法: 一共G勺(G#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define USACO#ifdef.. 阅读全文

posted @ 2014-01-19 10:48 小书包_Ray 阅读(210) 评论(0) 推荐(0) 编辑

2014年1月17日

《将博客搬至CSDN》

摘要: 还是原来的 csdn 博客 阅读全文

posted @ 2014-01-17 22:51 小书包_Ray 阅读(100) 评论(0) 推荐(0) 编辑

USACO 2.1.3 sort3

摘要: IOI经典题目题意:交换排序的方式,如何以最少的次数使得目标序列有序解法:本题目中数字都来自集合{1, 2, 3},将序列排序,统计1, 2, 3的个数,标记为num1, num2, num3统计num1段中2,3的个数,num2段中1,3的个数,num3段中1,2的个数,分别标记为a2,a3,b1,b3,c1,c2对应的pair只需要交换一次就有序分别需要min(a2,b1) min(a3, c1)...等再统计剩余数组中不在本身位置上的个数y,总的个数就是3段pair可交换数之和,以及加上y * 2 / 3/*ID: lsswxr1PROG: sort3LANG: C++*/#includ 阅读全文

posted @ 2014-01-17 17:01 小书包_Ray 阅读(239) 评论(0) 推荐(0) 编辑

USACO 2.1.2 Ordered Fractions

摘要: 题意:给定正整数N,输出分母小于等于N的“既约真分数”(就是分子分母互质的数)解法:没发现跟graph有什么关系。。后面的分析上给出的求解既约真分数的方法bool rprime(int a, int b){ int r = a % b; while(r != 0){ a = b; b = r; r = a % b; } return(b == 1);}/*ID: lsswxr1PROG: frac1LANG: C++*/#include #include #include #include #include #include #include... 阅读全文

posted @ 2014-01-17 15:46 小书包_Ray 阅读(181) 评论(0) 推荐(0) 编辑

USACO 2.1.1 The Castle

摘要: IOI经典原题题意:一幅城堡中的各个房间,东西南北四个方向都可能会有,没有墙的话视为连通,求解有多少个连通分量,最大房间的大小是多少,同时,如果移除一个墙,最大的房间面积是多少,移除墙的位置在哪儿。注意,移除墙的顺序为自南往北,先北面的墙再东面的墙(题意理解上比较麻烦的地方)2.1的TEXT中讲到了flood fill算法,结合DFS和BFS的基本搜索方法对于本题,先DFS求出所有的连通分量,然后按照题目的要求,顺序搜索移除的墙的位置,得到最优解(官方的解题思路类似)提交了3次。。/*ID: lsswxr1PROG: castleLANG: C++*/#include #include #in 阅读全文

posted @ 2014-01-17 11:30 小书包_Ray 阅读(246) 评论(0) 推荐(0) 编辑

2013年12月26日

USACO 1.5.4 Checker Challenge

摘要: 题意:经典的八皇后问题解法:采用朴素的每一次放置都与前面的所有行进行比较,在N =13的时候时间会爆掉《入门经典》上提供的方法很经典,vis数组的使用,具体见《入门经典》125页/*ID:lsswxr1PROG:checkerLANG:C++*/#include#include#include#includeusing namespace std;#define maxn 15ifstream fin("checker.in");ofstream fout("checker.out");int N, tot;int outputNums;int curP 阅读全文

posted @ 2013-12-26 23:46 小书包_Ray 阅读(249) 评论(0) 推荐(0) 编辑

导航