08 2013 档案
摘要:我的dfs真的好虚啊……,又是看的别人的博客做的 题目==题目:http://poj.org/problem?id=1416题意:给你两个数n,m;n表示最大数,m则是需要切割的数。切割m,使得切割之后的数的和小于等于n。求出最大的切割方法;例: 50 1234612346可以切割为 1 2 34 ...
阅读全文
摘要:题目:http://poj.org/problem?id=2531题意:一个矩阵,分成两个集合,求最大的 阻碍量改的 一位大神的代码,比较简洁 1 #include 2 #include 3 int n,max; 4 int g[30][30]; 5 int v[30]; 6 void dfs(int x,int sum) 7 { 8 int i,t=sum; 9 v[x]=1;10 for(i=1; imax)17 max=t;18 for(i=x+1; isum)20 {21 dfs(i,t);22 ...
阅读全文
摘要:题目:http://poj.org/problem?id=1129题意:求最小m,使平面图能染成m色,相邻两块不同色由四色定理可知顶点最多需要4种颜色即可。我们于是从1开始试到3即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int n,G[30][30],vis[30][5],ans;15 void pri(...
阅读全文
摘要:题目:http://poj.org/problem?id=3414题意:给出了两个瓶子的容量A,B, 以及一个目标水量C,对A、B可以有如下操作:FILL(i) fill the pot i (1 ≤ i ≤ 2) from the tap;DROP(i) empty the pot i to the drain;POUR(i,j) pour from pot i to pot j; after this operation either the pot j is full (and there may be some water left in the pot i), or the pot
阅读全文
摘要:题目:http://poj.org/problem?id=3009参考博客:http://www.cnblogs.com/LK1994/ 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int w,h,G[30][30];15 int d[4][2]={{1,0},{0,-1},{-1,0},{0,1}};16 int minstep;17 18.
阅读全文
摘要:题目:http://poj.org/problem?id=2488题意:给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 struct node15 {16 int x,y;17 }q[30]; //记录路径18 int p,c;19 int vi...
阅读全文
摘要:dfs 用的还是不行啊,做题还是得看别人的博客!!!题目:http://poj.org/problem?id=2676题意:把一个9行9列的网格,再细分为9个3*3的子网格,要求每行、每列、每个子网格内都只能使用一次1~9中的一个数字,即每行、每列、每个子网格内都不允许出现相同的数字。0是待填位置,其他均为已填入的数字。要求填完九宫格并输出(如果有多种结果,则只需输出其中一种)如果给定的九宫格无法按要求填出来,则输出原来所输入的未填的九宫格参考博客:http://www.cnblogs.com/tanhehe/archive/2013/08/07/3243073.htmlhttp://blog
阅读全文
摘要:题目:http://poj.org/problem?id=3087题意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。现在输入s1和s2的初始状态 以及 预想的最终状态s12问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1"。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include
阅读全文
摘要:题目:http://poj.org/problem?id=1426题意:输入一个数,输出这个数的整数 倍,且只有0和1组成程序里写错了一个数,结果一直MLE.…… 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 long long a;15 void bfs()16 {17 queueq;18 int i,j;19 lon...
阅读全文
摘要:题目:http://poj.org/problem?id=3126题意:给定两个四位数,求从前一个数变到后一个数最少需要几步,改变的原则是每次只能改变某一位上的一个数,而且每次改变得到的必须是一个素数; 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int p[10010],vis[10010];15 int a,b,t;16 struct n.
阅读全文
摘要:题目:http://poj.org/problem?id=2251简单三维 bfs不解释, 1A, 上代码 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int a,b,c;15 int vis[50][50][50],G[50][50][50];16 int dx[6]={0,0,0,0,-1,1};17 int dy[6]={0,0,1,-.
阅读全文
摘要:题目:http://poj.org/problem?id=1321参考博客:http://blog.csdn.net/lyy289065406/article/details/6647674 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int n,k,cnt;15 int G[10][10],vis[10];16 17 void dfs(in.
阅读全文
摘要:题目:http://poj.org/problem?id=3274 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 #define prime 10000315 int n,k,f;16 int bit[prime][32],head[prime],next[prime];17 int hash(int v[])//据说 这叫折叠法,我还是不明白.
阅读全文
摘要:题目:http://poj.org/problem?id=2513参考博客:http://blog.csdn.net/lyy289065406/article/details/6647445http://www.cnblogs.com/LK1994/p/3263462.html 1 #include...
阅读全文
摘要:题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4530dp[i]表示现在存在i个吸血鬼要达成目标(全为吸血鬼)天数的数学期望假如现在再增加一天,这一天可能会增加一个吸血鬼,p1*(dp[i+1]+1)表示接下来的一天增加了...
阅读全文
摘要:题目:http://poj.org/problem?id=1840题解:http://blog.csdn.net/lyy289065406/article/details/6647387小优姐讲的很好了 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 short hash[25000001]; 9 int main()10 {11 int a1,a2,a3,a4,a5;12 int x1,x2,x3,x4,x5;13 int s...
阅读全文
摘要:题目:http://poj.org/problem?id=2418在poj 上交题总是有各种错误,再次感叹各个编译器。c++ AC代码,G++为超时,上代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 6 char s[100]; 7 int main() 8 { 9 mapmp;10 map::iterator iter;//声明迭代器11 int sum=0;12 while(gets(s)!=NULL)13 {14 mp[s]++;...
阅读全文
摘要:poj double 就得交c++,我交G++错了一次题目:http://poj.org/problem?id=2151题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率问 每队至少解出一题且冠军队至少解出N道题的概率。每队均至少做一题的概率P1减去每队做题数均在1到N-1之间的...
阅读全文
摘要:题目:http://poj.org/problem?id=2442题意:给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列,让你求出序列和最小的前n个序列的序列和。 又是一个机智的题 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 int a[20000],b[20000];15 int main()16 {17.
阅读全文
摘要:题目:http://poj.org/problem?id=1442题意:n,m,分别是a数组,u数组的个数,u[i]w为几,就加到a几,然后输出第i 小的刚开始用了一个小顶堆,超时,后来看了看别人的 代码,很巧妙的设计 1 #include 2 #include 3 4 using namespace std; 5 6 int a[40000]; 7 int main() 8 { 9 int n,i,m,j,u;10 priority_queue,less > maxhead;11 priority_queue,greater > minhead;12 sc...
阅读全文
摘要:http://www.cnblogs.com/bigcat814/ http://blog.sina.com.cn/s/blog_7065a9de010154ve.html 堆 http://www.cppblog.com/MiYu/archive/2010/09/01/125539.html 以下
阅读全文
摘要:题目:http://poj.org/problem?id=2299这个题目实际就是求逆序数,注意 long long上白书上的模板 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include ...
阅读全文
摘要:题目:http://poj.org/problem?id=3253没用long long wrong 了一次 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 13 int main()14 {15 long long n,i,j,a,sum,cnt;//或者 __int64 n,i,j,a,sum,cnt;16 priority...
阅读全文
摘要:题目:http://poj.org/problem?id=2503不知道为什么 poj 的 数据好像不是100000,跟周赛的不一样2000MS的代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 13 char str[200010][30];14 int main()15 {16 int i,j;17 char s1...
阅读全文
摘要:题目:http://poj.org/problem?id=16110号是病原,求多少人有可能感染 1 #include 2 #include 3 #define maxn 50000 4 5 int u,v,bin[maxn]; 6 int find(int x) 7 { 8 return bin[x]==x?x:(bin[x]=find(bin[x])); 9 };10 11 int main()12 {13 int n,m,i,j,x,y,k,sum,t;14 while(~scanf("%d%d",&n,&m)&&(n!=0||m!=0
阅读全文
摘要:题目:http://poj.org/problem?id=1035还是暴搜 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 ...
阅读全文
摘要:题目:http://poj.org/problem?id=3080水题,暴搜 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include1...
阅读全文
摘要:题目:http://poj.org/problem?id=3041题意:在某个n*n的空间内,分布有一些小行星,某人在里面打炮,放一枪后某一行或某一列的行星就都没了,让求最少的打炮数。然后把每行x或者每列y看成一个点,而障碍物(x,y)可以看做连接x和y的边。按照这种思路构图后。问题就转化成为选择最...
阅读全文
摘要:题目:http://poj.org/problem?id=3267题意:给定一个字符串,又给n个单词,求最少删除字符串里几个字母,能匹配到n个单词里 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace std;11 12 char s[700][400];13 int min_n(int a,int b)14 {15 return a>b?b:a;16 }17 int main()18 {19 i...
阅读全文
摘要:题目:http://poj.org/problem?id=3687题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小。(先保证1号球最轻,其次2号……)然后,按照重量1~n的输出位置要倒序建图,优先选择编号大的 给编号大的 拓扑排序,注...
阅读全文
摘要:题目:http://poj.org/problem?id=1094题意:给定一个关系,判断三种情况 1、到第几组的时候就可以判断出 什么关系了 2、到第几组的时候可以判断矛盾 3、判断不出来 每次输入,都要 拓扑 判断 1 #include 2 #include 3 #include 4 #inc...
阅读全文
摘要:有几个错误,调试了几个小时,样例过后 1Y.题目:http://poj.org/problem?id=3026题意:就是让求A们和S的最小生成树先用bfs找每两点的距离,再建树。没剪枝 63MS。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 11 char G[60][60]; 12 int dx[5]={0,0,1,-1}; 13 int dy[5]={1,-1,...
阅读全文
摘要:题目:http://poj.org/problem?id=2240题意:给定n个货币名称,给m个货币之间的汇率,求会不会增加 和1860差不多,求有没有正环刚开始没对,不知道为什么用 double往结构体里传值的时候 会去掉小数点后的 数 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 13 struct node14 {15 int u...
阅读全文
摘要:题目:http://poj.org/problem?id=1125题意:给出一个社交网络,每个人有几个别人可以传播谣言,传播谣言需要时间。问要使得谣言传播的最快,应该从那个人开始传播谣言以及使得所有人都知道这个谣言需要多少时间,、时间的定义是使得最后一个人知道这个谣言的时间。多元最短路 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 13 const int INF= 1b.
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=4642题意:给定一个棋盘,0表示向下,1表示向上,选一个x,y, 然后翻转从x,y到n,m.的所有硬币,谁先把所有硬币翻到0,谁就赢了题解:不是很好想,主要看最后一个 是否是1, 是1 的话 就是第一个翻的赢了。因为 你要想赢必须保证你翻完后最后一个方格是0;否则你就输了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 usin.
阅读全文
摘要:题目:http://poj.org/problem?id=2253题意:给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 using namespace s.
阅读全文
摘要:终于A 了,这题做着真麻烦题目:http://poj.org/problem?id=1062dijk 一般用于正权有向图此题的关键在于等级限制的处理,最好的办法是采用枚举,即假设酋长等级为5,等级限制为2,那么需要枚举等级从3~5,4~6,5~7题意就不用说了,做poj以来的第一道中文题目。要考虑间接身份差异不可行的情况如:1 410000 3 22 13 31000 2 24 13 11000 3 14 2100 4 0错误程序出104,答案105。对于这组数据错误的程序是4->3->2->1的,但4和2不能并存 1 #include 2 #include 3 #inclu
阅读全文
摘要:感觉最短路好神奇呀,刚开始我都 没想到用最短路题目:http://poj.org/problem?id=1860题意:有多种从a到b的汇率,在你汇钱的过程中还需要支付手续费,那么你所得的钱是 money=(nowmoney-手续费)*rate,现在问你有v钱,从s开始出发交换钱能不能赚钱题解:这题其实是用bellman_ford的思想,通过n-1次松弛后,如果还能增加,就说明有环 可以使金钱数不断增加。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ...
阅读全文
摘要:题目:http://poj.org/problem?id=3259题意:一个famer有一些农场,这些农场里面有一些田地,田地里面有一些虫洞,田地和田地之间有路,虫洞有这样的性质: 时间倒流。问你这个农民能不能看到他自己,也就是说,有没有这样一条路径,能利用虫洞的时间倒流的性质,让这个人能在这个点出发前回去,这样他就是能看到他自己典型的Bellman_ford 检查有没有形成负环。套的模板 1 #include 2 #include 3 4 const int maxn = 1011; 5 const int maxm = 10011; 6 const int oo = 1 dis[u]...
阅读全文
摘要:题目:http://poj.org/problem?id=2049题意:有一个迷宫,在迷宫中有墙与门 有m道墙,每一道墙表示为(x,y,d,t)x,y表示墙的起始坐标d为0即向右t个单位,都是墙d为1即向上t个单位,都是墙有n道门,每一道门表示为(x,y,d)x,y表示门的起始坐标d为0即向右一个单位表示门d为1即向上一个单位表示门再给出你起点的位置(f1,f2),并保证这个点的位置不会再墙或者门中,为起点到(0,0)最少要穿过多少条门代码是根据网上大神的稍微改了一下,就交了 1 #include 2 #include 3 #include 4 #include 5 #includ...
阅读全文
摘要:做了1天,总是各种错误,很无语最后还是参考大神的方法题目:http://poj.org/problem?id=3083题意:从s到e找分别按照左侧优先和右侧优先的最短路径,和实际的最短路径DFS找左右侧 的最短路径 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std; 10 char G[50][50]; 11 int vis[50][50]; 12 int c,r; 13 struct node 14 { ...
阅读全文
摘要:题目:http://poj.org/problem?id=2993题意:和2996反着 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 struct node12 {13 int x,y;14 char ch;15 }q[1000];16 bool cmp(node a,node b)17 {18 if(a.x!=b.x) return a.x>b.x;19 return a.y...
阅读全文
摘要:题目:http://poj.org/problem?id=2996题意:给出 棋盘 情况 输出 白棋 和 黑棋在 棋盘上的 白棋为大写字母 黑棋为小写字母 棋盘 左下点为原点(1,a) 输出 是 按照KQRBNP的顺序白棋 输出 行小的 行相同按列小的 先输出 黑棋 行大的先输出 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 struct node12 {13 int p,x,y;14 cha...
阅读全文
摘要:题目:http://poj.org/problem?id=1258题意:模板题 和2485差不多 就是求相连后的最小值。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int bin[110];11 struct node12 {13 int u,v,w;14 } q[30000];15 bool cmp(node x,node y)16 {17 return x.w...
阅读全文
摘要:这题挺无语啊,在poj上交c++就wrong,用cin输入就会TLE;看来以后要交G++,用scanf输入了题目:http://poj.org/problem?id=2485题意:求最小生成树的边的最长边 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int bin[510];11 struct node12 {13 int u,v,w;14 } q[251000];15 boo...
阅读全文
摘要:模板题题目:http://poj.org/problem?id=1789题意:有n个型号,每个型号有7个字母代表其型号,每个型号之间的差异是他们字符串中对应字母不同的个数d[ta,tb]代表a,b之间的差异数问1/Σ(to,td)d(to,td)最大值prime: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 int grah[2100][2100];12 int sum=0;13 void pim(int .
阅读全文
摘要:题目:http://poj.org/problem?id=3096 题意:给定一个字符串S,从中找出所有有两个字符组成的子串,每当组成子串的字符之间隔着n字符时,如果没有相同的子串出现,则输出 "S is surprising." , 反之,则输出 "S is NOT surprising." 。
阅读全文
摘要:简单例题题目:http://acm.hdu.edu.cn/showproblem.php?pid=1412list 相关博客:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 1 #include 2 #inclu...
阅读全文
摘要:题目:题意:题意:给出几个正数(2~15个),然后就是求有这些数字的2倍有没有和原先的正数相同的,求出有几个,没有就是0.分析:水题。用数组解决,开一个数组存正数,另开一个数组用来存这些数的2倍,接着就搜索,然后注意一下结束的时候怎么处理就行。c普通方法: 1 #include 2 #includ...
阅读全文
摘要:题目:http://poj.org/problem?id=3006筛选法求素数 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 int prime[1000005];//代表是否是素数12 int main()13 {14 int s,max=1000005;15 int x,y,z,i;16 17 s=0;18 prime[0]=pri...
阅读全文

浙公网安备 33010602011771号