ACM
fofu33
个人微信:qinoem,来交个朋友吧
展开
-
poj 3252 Round Numbers 排列组合 杨辉三角
Round Numbers 题目大意:给定区间【a, b】, 输出a, b之间round Numbers的数量, round number满足它的 二进制形式0的个数大于1的个数题目分析:分别求出闭区间 [0 ,a]内有T个RN, 闭区间 [0 ,b+1] 内有S个RN, 再用 S – T 就是闭区间 [a ,b]内的RN数了。题目程序:#include原创 2013-05-21 21:58:23 · 877 阅读 · 0 评论 -
poj 1416 Find The Multiple 同余模定理
原来我用宽度搜索,结果TLE#include "iostream"#include "queue"using namespace std;typedef unsigned long long type;queue Q;int chushu;type a, b;void bfs(){ a = 1; Q.push(a); while(!Q.empty()){ b =原创 2013-05-10 13:28:30 · 712 阅读 · 0 评论 -
joj 2512 Groups 并查集
小抱怨: 第一次用吉大的 OL真恶心, 明明登陆了每次提交还得输入密码.提交的是c++, 还提示你确定你提交的是c++吗, 第一感觉这么智能,提交判断那种语言。第二感觉这么"智能" !题目链接 http://acm.jlu.edu.cn/joj/showproblem.php?pid=2512题目大意:将N个人分成M组,测试数据包含多组输入,每组输入第一行为两个整数N,T(1原创 2013-05-11 17:44:09 · 693 阅读 · 0 评论 -
ZOJ 3657 The Little Girl who Picks Mushrooms
WA了好几次,主要是有些情况没有想到,思维不行。暂时不知道怎么避免这类错误重复出现。#include "iostream"#include using namespace std;int a[6];int n, k;int sum;void four(){ int i, j; for(i = 1; i <= n; i++){ int he = (sum - a[i]) %原创 2013-05-14 08:51:52 · 543 阅读 · 0 评论 -
joj1020 u Calculate e 输出精度设置
题目链接: http://acm.jlu.edu.cn/joj/showproblem.php?pid=1020大致题意:输出n由0到9的对应n e值Sample Outputn e- -----------0 11 22 2.53 2.6666666674 2.708333333第一次我的程序, WA#include "iostream"原创 2013-05-14 08:36:03 · 825 阅读 · 0 评论 -
joj 1008 Go hang a salami 回文判断
题目链接: http://acm.jlu.edu.cn/joj/showproblem.php?pid=1008题目大意: 判断一个带有标点,字母,空格的字符串是不是回文,忽略空格和标点,只比较字符特殊情况: 1. 没有字符时,输出不是 2. 要是全是标点,不是回文我的错误:判断是不是大写字母,注意判断的时候要考虑逻辑运算的执行方式要是 ('A' >原创 2013-05-15 07:43:54 · 636 阅读 · 0 评论 -
poj 3253 Fence Repair哈夫曼树
#include #include #include using namespace std;struct node{ int x; bool operator < (const node &a) const{ return a.x < x ; }};int main(){ //freopen("in.txt","r",stdin);原创 2013-05-31 21:03:39 · 731 阅读 · 0 评论 -
poj 1050 求子矩阵之和 动态规划
To the Max 求最大子矩阵和的时候,思路是取出两行i,j,,把这两行之间同一列的都加起来形成另外一个数组,求这个数组的最大子段和,求出来的这个和,就是这两行之间高度为i-j的子矩阵中最大的和.#include #include using namespace std;#define size 110int a[size][size], b[size];int mai原创 2013-06-05 10:09:57 · 1522 阅读 · 0 评论 -
poj 1080 Human Gene Functions动态规划
Human Gene Functions1) str1取第i - 1个字母,str2取'-'; int m1 = gene[i - 1][j] + score[map[str1[i - 1]]][4]; 2) str1取取'-', str2取第i - 1个字母 int m2 = gene[i][j - 1] + score[4][map[str2[j - 1]]];原创 2013-06-04 21:48:39 · 579 阅读 · 0 评论 -
zoj 1093 贪心法+动态规划
Monkey and Banana太帅了, 以前不知道怎么做的题,今天一次提交一次通过。这是对我努力的一种肯定。这道题我觉得是贪心法加动态规划,一开始把长宽小的置前,然后用类似求最长上升子序列的方法求最大值虽然一种砖块可以无限次的用, 其实你会发现每种最多也就用三次。所以我把三种情况都放进了结构体,然后排序。#include #include #include原创 2013-06-05 16:04:04 · 1176 阅读 · 0 评论 -
zoj 1108 FatMouse's Speed 简单动规
FatMouse's Speed 题目较为简单,但是我一开始做输出的时候,为了达到先找到头结点在向后输出采用了stack但是后来改进的递归输出的确更加的高明。#include #include using namespace std;#define size 1010int dp[size]; //存储值int pre[size];struct mous原创 2013-06-06 18:56:14 · 898 阅读 · 0 评论 -
zoj 1107 FatMouse and Cheese 逆向动态规划
FatMouse and Cheese 开始试着用深度搜索做,超时了(对于时间复杂度没有概念)这道题用动态规划。如果用自顶向下的方法,我们不知道结尾的是哪个点,所以不方便用。如果我们采用自下而上的方法,用eatNum[i][j]表示从起点到达i, j 位置老鼠所吃的奶酪数,问题是一个节点可由几中不同的路径不同时得到,所以也会发现也会有重复的路要走。书上的动态规划方法其实挺妙。用原创 2013-06-06 15:44:54 · 1447 阅读 · 0 评论 -
zoj 1025 Wooden Sticks 贪心 + 动态规划
Wooden Sticks #include #include using namespace std;#define maxN 5005int n;struct stick{ int l; //木棒的长度 int w; //木棒的重量}a[maxN];bool cmp(const stick &a, const stick &b){ if(a.l == b.l)原创 2013-06-07 09:23:35 · 866 阅读 · 0 评论 -
joj 1113 The Game
The Game这道题是为了让折线数最小,跟先到达没有必然关系。5 4XXXXXX XXXX X XXX2 1 5 40 0 0 00 0比如这个就应该是4,而不是最先到达的5。同时不同折线经过相同的点,例如:6 5XXXX XX X XXX X XXX XXXXXXX2 1 5 5应该是3原创 2013-06-29 15:41:25 · 659 阅读 · 0 评论 -
zoj 1137 Girls and Boys 二分图的最大独立集
#include #include #include using namespace std;#define SIZE 505int n;int graph[SIZE][SIZE];int visited[SIZE];int match[SIZE];int Hungary(int u){ int i; for(i = 0; i < n; i++){ if(!visit原创 2013-08-25 09:03:12 · 1537 阅读 · 0 评论 -
joj 1270 Triangle Wave 找点自信题
#includeusing namespace std; int main() { int A, F; cin>>A>>F; while(F--){ int row = 1, i; for(i = 1; i <= A; i++){ int temp = row; while(temp--) cout<<i; cout<<endl; row原创 2013-05-19 20:23:07 · 583 阅读 · 0 评论 -
ZOJ 1268 Is It A Tree?
题目连接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1268测试例:一定在思考的时候考虑问题考虑得全面一些,注意几种特殊情况:0 0 空树是一棵树(没考虑到)1 1 0 0 不是树 不能自己指向自己(没考虑到)1 2 1 2 0 0 不是树 重复不行1 2 2 3 4 5 0 0不是树 森林不原创 2012-12-07 19:16:42 · 552 阅读 · 0 评论 -
ZOJ 1002 Fire Net 深度优先搜索算法
这道里原来我在看别人代码之前, 也写过。 洋洋洒洒的写了一个main函数四个嵌套for循环, 第一次的大手笔。运行结果没有问题, 但就是提交不上去, 还不收呢?搁置了好几天后, 没办法放弃。后来看了一下别人的代码, 写完后提交编译错误, 都是因为跟系统函数重名缘故。 这道题的名头是,DFS(Depth-First-Search)深度优先搜索算法#include "iostrea原创 2012-11-22 20:37:54 · 1073 阅读 · 0 评论 -
zoj 1563 Pearls 动态规划
题目连接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1563本题几个隐含条件:1. 加入你决定了买 A 种钻石, 你不会买一部分 A 种, 其余买比 A 中高的品种, 这样花费一定比买全部a种多2. 你如果买 A 中钻石, 前面第几种类的钻石一定在这,或在这儿之前都买完, 不会留到后面再买原创 2013-04-03 15:40:05 · 809 阅读 · 0 评论 -
poj 3278 Catch That Cow 广度优先算法
广度优先对于求最短路劲是非常有效的 #include #include #define SIZE 100001using namespace std;queue x;bool visited[SIZE];int step[SIZE];int bfs(int n, int k){ int head, next; //起始节点入队 x.push(n); //标记n原创 2013-04-17 09:09:46 · 614 阅读 · 0 评论 -
POJ 3267 The Cow Lexicon 动态规划
解题思路动态规划 题意就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列。PS:是匹配单词序列,而不是一个单词 不多说,看程序主要是知道状态方程的含义dp[i]表示从message中第i个字符开始,到第L个字符(结尾处)这段区间所删除的字符数,初始化为dp[L]=0由于我的程序是从messag转载 2013-03-31 09:49:39 · 525 阅读 · 0 评论 -
ZOJ 1196 Fast Food 动态规划
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1196设想状态p(n,k)表示n个店前建k个仓库的最优距离p(n,k)=min(p(i,k-1)+mindis(i+1,n)) //其中k-1 即我们求出0到i间建设k-1个供应站, 加上i, n之间建一个供应站的最小值. 0到i 有变成了原创 2012-12-07 19:27:54 · 1398 阅读 · 0 评论 -
ZOJ 1099 HTML
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1099这道题挺烦人的, 主要是细节的东西太多, 一不注意就容易载进去而且我发现, 就地下 if(first + str.length() >= max )你要是写成 if(first + str.length() + 1 >= max ) 也Acce原创 2012-11-20 09:31:24 · 1000 阅读 · 0 评论 -
Dick and Jane
题目连接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1110这道题听搞怪, 一下子还真不好想四个表达式: a-b = s || s+1b-c = p || p+1a-c = y || y+1a+b+c = 12 + j#include "math.h" int main(){ int Sp原创 2012-11-26 21:48:55 · 804 阅读 · 0 评论 -
ZOJ 2034 False Coin
/* 所谓的蛮力法(也叫穷举法.暴力法) 我们假设i号金币是假的。 对各组记录进行比较, 如果假设和记录不矛盾, 有可能是假的 如果可能的假金币只有1个, 输出其编号; 否则, 输出0. */#include "iostream"#include "cstring"#include "cstdio"using namespace std; int nu原创 2012-11-26 18:57:48 · 609 阅读 · 0 评论 -
ZOJ 1084 Channel Allocation 四色定理
这个题真难啊, AC率42%这题用到了“四色定理” : 任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。这里所指的相邻区域,是指有一整段边界是公共的。如果两个区域只相遇于一点或有限多点,就不叫相邻的。因为用相同的颜色给它们着色不会引起混淆。我做了好几遍, 错了好几遍, 后来看了别人的代码, 勉强懂了, 但是还有挺多细节不懂,我发现好多人发表的日志都差不多的代码,应该也看原创 2012-11-28 21:06:34 · 879 阅读 · 0 评论 -
zoj 1633 Big String
这题数据类型用了long long型, 这个型在vc++中编译会出错, 但是提交的时候却对了这题主要是关于斐波那契数列#include "iostream"using namespace std;typedef unsigned long long int64;#define len 88int64 a[len];int main(){ string base = "T.T^原创 2013-04-26 14:08:08 · 928 阅读 · 0 评论 -
zoj 1239 Hanoi Tower Troubles Again!
#include #include #include using namespace std;int a[51], sum, T;int p(int w){ //i是当前要放的求的编号 for(int i = 1; i <= T; i++){ //逐一判断能不能放 int tem_sum = a[i] + w; int gen = (int)sqrt(tem_sum) *原创 2013-04-27 16:57:08 · 855 阅读 · 0 评论 -
joj 2526 medic 动态规划
题目链接:http://acm.jlu.edu.cn/joj/showproblem.php?pid=2526题目大意: 山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。给你一段时间,在这段时间里,采到一些草药,让采到的草药的总价值最大。AC程序: #include #include using namesp原创 2013-05-16 15:32:49 · 665 阅读 · 0 评论 -
joj 2529 Chorus 动态规划 最长上升子序列和最长下降子序列
题目链接:http://acm.jlu.edu.cn/joj/showproblem.php?pid=2529题目大意:给出一个队列的总人数和各自的身高,问最少剔除多少人才能让这个序列从左到 i 为一直增高, 从i 到 有一直变矮,相邻两个不能相等。Sample Input8186 186 150 200 160 130 197 220Sample Output4AC原创 2013-05-18 14:41:31 · 963 阅读 · 2 评论 -
poj1141 Brackets Sequence 动态规划 输出路径
分析: 1. s形如(s')后则[s']:只需要把s'变成规则的,则s就是规则了。2. s形如(s':先把s'变成规则的,在把最后一个加")", 则s就是规则的了。3. s形如[s'或者s')后者s']:同上。4. 只要序列长度大于1, 都可以把S分成两部分Si。。。Sk, Sk+1。。。Sj, 分别变成规则序列,则连在一起也是规则的序列。对于程序一:我觉得是用到了第四条性原创 2013-05-05 19:03:21 · 624 阅读 · 0 评论 -
ZOJ 1525 air raid
Air Raid#include #include using namespace std;#define SIZE 150int n;int map[SIZE][SIZE];int visited[SIZE];int match[SIZE];int Hungary(int u){ //hungary匈牙利 int i; for(i = 1; i <= n; i+原创 2013-11-16 20:30:57 · 788 阅读 · 0 评论