上一页 1 2 3 4 5 6 7 ··· 15 下一页
摘要: 题意:N个牛排成一队,1~N每头牛的前后位置和序号一致(序号小的在前面),两头牛如果关系好,就希望离得近一点,关系不好就希望离得远一点,现在给出一系列关系(每行关系三个数),每行表示两头牛,以及他们之间距离最大(或距离最小)是多少,求1号到N号牛的最大距离是多少,如果根据题目给的数据,牛不能排成一排,输出-1,如果1到N的距离任意,输出-2否则输出最大距离分析:根据题目很容易列出一组不等式,有一个隐含条件,后一头牛的坐标一定大于等于钱一头牛(xi+1-xi>=0)求最大距离,所以就用spfa(或BellMan_Ford)求1~N的最短路,如果存在负环,说明不能排成一排,输出-1,如果di 阅读全文
posted @ 2012-08-16 11:37 快乐. 阅读(170) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2392题意;有几种石块,每种有一定的数量,另外每种有一高度值a,并且每种石块的顶部离地面不能超过一定的高度多重背包,再根据a值排序,与普通多重背包有点区别,而且dp[i]表示离地面为i时的最大高度代码:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#define nMAX 40005using namespace std;int dp[nMAX],cnt;s 阅读全文
posted @ 2012-08-15 14:32 快乐. 阅读(143) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2391题意:N个区域,每个区域有一个避难所,现在每个区域有一定数量的牛,避难所可以容纳一定数量的牛,下雨的时所有的牛都找到避难所所需要的时间,如果有的牛不能找到避难所,输出-1。用费用流是错的,一个错误犯多次,或许是改变思维不容易吧。网络流1.源点到区域间连线,权值为现在区域牛的数量,区域到汇点连线,权值为可以容纳的牛的数量2.然后floyd求出所有的点间的距离,然后二分答案,距离小于等于mid值的,连线。。。但是如果在原来的区域间连线,就会WA,因为如果mid=1, 1->2为1 , 2->3为1,1->3为2的话,1- 阅读全文
posted @ 2012-08-14 21:58 快乐. 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题意:几个人围成一个圈,第K个人开始出圈,k说出一个数(!=0)a,a>0表示左边的第a个人出列,a<0表示左边的d第a个人出列 ,直到最后一个人出圈每个人出圈都有一个序号,如第一个出圈,第二个。。。找出所有序号中最大的反素数,反素数!!!找了一个表贴上了这里讲的反素数http://www.cnblogs.com/jackiesteed/articles/2018868.htmlhttp://www.cnblogs.com/xiaoxian1369/archive/2011/08/05/2129031.html(写的晕晕的,to me好不容易),其中找下一个位置的计算 假设位置是从 阅读全文
posted @ 2012-08-13 21:58 快乐. 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一些人和每个人的入队时在队列的位置。每个人都有一个值val,输出俺顺序输出队列的val,数据量 200000如果用链表肯定超时,于是乎,用二叉树,but TLE了,才醒悟过来,如果二叉树是个左斜树或右斜树不就跟链表复杂度一样的么。。。百度是个好东西,原来是线段树,不管什么数据量,可以达到logN,不过题目一般都会让人动脑子,要会转化等等,该题有个小特点,最后插入的数的位置,一定是最终位置,所以要从后往前放入线段树。最后自己写了一组数据死活过不了,一提交AC,系统有问题?还真不是,那是一组不靠谱的错误数据。。。囧,写数据也要合理才行每个线段有一个num值,记录该区间可以放几个数根据数的 阅读全文
posted @ 2012-08-13 21:37 快乐. 阅读(168) 评论(1) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2492题意:给出几组不同性别的虫子,判断是否存在同性恋关系并差集,用r[]记录与根节点的关系,r[i]==0与根节点同性,r[i]==1与根节点异性x以a为根节点,y以b为根节点,根据x,y异性的的关系,让b以a为根节点时,得出 r[y]+(待求值)r[b]+r[x]=1,(x,y异性,关系为1,y到b的关系,加上b到a的关系,加上a到x的关系,就是x与y的关系),则r[b]=1-r[x]-r[y],因为,r[]只有0,1两个数值,所以 r[b]=(r[x]+r[y]+1)%2;参考bloghttp://www.haogongju.net/ 阅读全文
posted @ 2012-08-13 09:20 快乐. 阅读(140) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3394求有几个边不在环中,有几个边在不同的环中代码://块没有割点的连通子图#include<iostream>#include<cstdio>#include<string>#include<cstring>#define Min(a,b)a<b?a:b#define nMAX 10002#define mMAX 20002using namespace std;int head[nMAX],dfn[nMAX],low[nMAX],stack[nMAX] 阅读全文
posted @ 2012-08-11 11:28 快乐. 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一棵树(n个节点),去掉一个点后,每个子树的节点数都不大于 n/2,求出这样的节点并按升序输出树形dp,很神圣的样子,就是树形dfs嘛。。。代码:#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<cmath>#include<algorithm>#define nMAX 10010using namespace std;int head[nMAX],dp[nMAX];int s_edge,n,num,ans[nM 阅读全文
posted @ 2012-08-10 21:37 快乐. 阅读(352) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2185求最小覆盖子矩阵的面积,求出每行的最小覆盖子串,求最小公倍数,就是矩阵的长度求出每列的最小覆盖子矩阵然后求最小公倍数,就是矩阵的宽最小覆盖字串的长度 ans=len-next[len]; http://blog.csdn.net/fjsd155/article/details/6866991代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#define nMAX 10005#define mMAX 阅读全文
posted @ 2012-08-10 11:41 快乐. 阅读(163) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2406求最小重复字串KMP next函数代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#define nMAX 1000005using namespace std;int next[nMAX],len;char s[nMAX];void get_next(){ //next[i]表示i前面匹配了几个字符 int i,j; i=0,j=-1; next[0]=-1;//初始化 while(i<= 阅读全文
posted @ 2012-08-10 11:36 快乐. 阅读(126) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 15 下一页