02 2015 档案

摘要:lcs,用gets读入#include#include#include#include#includeusing namespace std;int main(){ int i,j,n1,n2,dp[110][110],cas=0; char a[110],b[110];... 阅读全文
posted @ 2015-02-24 11:09 xryz 阅读(89) 评论(0) 推荐(0) 编辑
摘要:lcs,答案输出后有一个空行……#include#include#include#include#includeusing namespace std;int main(){ int a[110],b[110],i,j,n1,n2,dp[110][110],cas=0; ... 阅读全文
posted @ 2015-02-24 10:51 xryz 阅读(77) 评论(0) 推荐(0) 编辑
摘要:LCS,输出还是没有想出来。#include#include#includeusing namespace std;int f[110][110],dp[110][110];char s1[110][35],s2[110][35];bool flag;void fun(int i,i... 阅读全文
posted @ 2015-02-23 16:17 xryz 阅读(96) 评论(0) 推荐(0) 编辑
摘要:DAG最长路算法 刚开始没有想到的是如何保存路径,自己想了用两个数组记录,想想就觉得比较麻烦,所以放弃了。最后看了其他人的代码由一个数组记录,每个数组的元素记录下一个的下标。#include#include#include#include#includeusing namespace... 阅读全文
posted @ 2015-02-22 19:29 xryz 阅读(106) 评论(0) 推荐(0) 编辑
摘要:DAG最长路算法,算法竞赛入门经典p269#include#include#includeusing namespace std;int v[35][3],d[35][3],n;void f(int* p,int x,int y){ int temp=0,i; for(i... 阅读全文
posted @ 2015-02-22 15:39 xryz 阅读(111) 评论(0) 推荐(0) 编辑
摘要:题意是将这些硬币分成两份,差值要最小,并输出 先求硬币总价值,然后考虑一个只有总价值一半的01背包#include#include#include#include#includeusing namespace std;int main(){ int n,m,i,j,a[105]... 阅读全文
posted @ 2015-02-21 21:36 xryz 阅读(79) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#includeusing namespace std;int vis[55][55],d[55][55],a[55];int dp(int i,int j){ if(i>=j-1) return 0; if... 阅读全文
posted @ 2015-02-21 12:19 xryz 阅读(85) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#includeusing namespace std;int main(){ int cas,i,j,n,p[1024],w[1024],g[105],m,dp[1024],sum; scanf("%d",... 阅读全文
posted @ 2015-02-20 19:42 xryz 阅读(77) 评论(0) 推荐(0) 编辑
摘要:自己没想到动态规划怎么写,看了其他人的解释才明白。用一个dp数组记录s是否能赢(状态为1)。 如果dp[i]为1,dp[i+加上任何一个可以移动的块数]必定为0。反过来也是成立的。#include#includeint main(){ int n,m,i,a[15],j,dp[... 阅读全文
posted @ 2015-02-18 23:45 xryz 阅读(128) 评论(0) 推荐(0) 编辑
摘要:#include#includeint main(){ int n,t,dp[10005],c[25][10005],v[10005],i,j; while(~scanf("%d%d",&n,&t)) { for(i=0;i=v[i];j--) ... 阅读全文
posted @ 2015-02-18 14:11 xryz 阅读(96) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#includeusing namespace std;int main(){ int m,n,t,max,sum,i,j; while(~scanf("%d%d%d",&m,&n,&t)) { ... 阅读全文
posted @ 2015-02-18 13:23 xryz 阅读(117) 评论(0) 推荐(0) 编辑
摘要:输出的种类书要用 long long int型,%lf三位要用%6.2f。 第一个输出也可以用%d.%d读入,%3d.%.2d输出。 数据可以缩小5倍再处理。#include#includeint main(){ int i,j,c[12]={1,2,4,10,20,40,10... 阅读全文
posted @ 2015-02-18 10:21 xryz 阅读(98) 评论(0) 推荐(0) 编辑
摘要:考虑最后一个硬币是什么再加上之前的就好了。#include#include#include#include#includeusing namespace std;int main(){ int n,i,j,a[8000],coin[5]={1,5,10,25,50}; m... 阅读全文
posted @ 2015-02-17 18:47 xryz 阅读(71) 评论(0) 推荐(0) 编辑
摘要:最长公共子序列 解析见uva 111的博文不知道为什么用scanf读入字符串会有问题,改成gets就好了#include#include#include#include#includeusing namespace std;int main(){ int i,j,l1,l2,d... 阅读全文
posted @ 2015-02-17 15:21 xryz 阅读(105) 评论(0) 推荐(0) 编辑
摘要:求两个数列最长公共子序列。 注意输入的不是要求的序列,是需要转换的。 输的是第i件事件发生的编号。 输入方式需要注意。相关资料 #include#include#includeusing namespace std;int n,dp[21][21],c[21],t[21];bool ... 阅读全文
posted @ 2015-02-17 14:56 xryz 阅读(96) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#includeusing namespace std;int main(){ int n,w[1024],i,j,d[1024],m,maxx,f; while(~scanf("%d",&n)&&n) ... 阅读全文
posted @ 2015-02-17 11:31 xryz 阅读(103) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#includeusing namespace std;int main(){ int t,n,v,i,j,w[1024],s[1024],d[1024]; scanf("%d",&t); while(... 阅读全文
posted @ 2015-02-17 11:17 xryz 阅读(79) 评论(0) 推荐(0) 编辑
摘要:用了下面这个定理 Havel-Hakimi定理#include#include#include#include#includeusing namespace std;int a[10004],n;bool cmp(int a,int b){ return a>b;}bool f... 阅读全文
posted @ 2015-02-15 20:01 xryz 阅读(112) 评论(0) 推荐(0) 编辑
摘要:没有看明白这标题配图和题目有什么关系,好像这是一张专辑的名字。 先要考虑有多少个字母总数是奇数,超过1个就直接输出impossible。每一次考虑两端点情况,如果字母不同,再进行搜索,换那个字母交换次数比较少,然后进行交换那一边的字母,直到变成回文串。#include#... 阅读全文
posted @ 2015-02-15 13:48 xryz 阅读(88) 评论(0) 推荐(0) 编辑
摘要:#include#includeint main(){ int cas,c1,c2,i; long long int num1,num2,t,n1[15],n2[15]; char c; scanf("%d",&cas); while(cas--) { ... 阅读全文
posted @ 2015-02-13 14:42 xryz 阅读(123) 评论(0) 推荐(0) 编辑
摘要:一直在想如何打植物大战僵尸,题目题意都没有好好理解。晚上静下心来才明白白天都想错了。实际上下午用了修改器发现pvz好无聊。这是算法竞赛入门经典p233页中的区域覆盖问题,书本上讲的看了好久才懂,主要是我以为就只能用一条,实际上题意是用最少的条数组合起来。写法就是排序和扫描,排序按左端点从小到大排。输... 阅读全文
posted @ 2015-02-12 22:36 xryz 阅读(111) 评论(0) 推荐(0) 编辑
摘要:来自一位学长qsort排序(从大到小)#include #include int a[105];int cmp(const void *x,const void *y){ return (*(int*)x)>(*(int*)y);}int main(){ int i, j; a[0... 阅读全文
posted @ 2015-02-12 09:39 xryz 阅读(210) 评论(0) 推荐(0) 编辑
摘要:思路就是最大的数相加次数最小,每次相加后的新数要重新排序。#include#include#include#include#includeusing namespace std;int main(){ int n,a[5009],i; long long int sum,t; wh... 阅读全文
posted @ 2015-02-11 20:31 xryz 阅读(125) 评论(0) 推荐(0) 编辑
摘要:数据比较小,所以直接将所有和算出来,然后在遍历和的数组,找出最靠近的。#include#includeusing namespace std;int f(int a,int b){ if(a>b) return a-b; return b-a;}int main(){ int n,... 阅读全文
posted @ 2015-02-11 20:07 xryz 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题意:以两点画一个直线,最多有多少点在这个直线上。输入方式倒是第一次见到,搜了一下发现可以用sscanf函数。记得好像刘佳汝书本中讲到过,下次看到再去研究,这次先用。求直线也有很多方法,幸亏高中数学老师逼的好……用了一种不用考虑斜率不存在的方法。#include#includeint main(){... 阅读全文
posted @ 2015-02-10 14:21 xryz 阅读(122) 评论(0) 推荐(0) 编辑
摘要:鼠标放在右下角点击(齿轮图标)——设置,选择更改电脑设置,选择更新和恢复,选择恢复,选择高级启动,立即重启,疑难解答,高级选项,UEFI固件设置,重启,即可进入BIOS。 版权声明:本文为博主原创文章,未经博主允许不得转载。http:/... 阅读全文
posted @ 2015-02-10 13:37 xryz 阅读(171) 评论(0) 推荐(0) 编辑
摘要:二分法,注意端点精度0.00001是过不了的……1e-9差不多吧……#include#includedouble a1,a2,p,q,r,s,t,u;double f(double x){ double ans=p*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*x*... 阅读全文
posted @ 2015-02-10 13:19 xryz 阅读(138) 评论(0) 推荐(0) 编辑
摘要:题意:一个人在玩这个游戏,坐在一个圈子的中间,他已经偷看了前面的人是谁,让你求后面的人是谁?#include#includeint main(){ int cas,n,i,f,ans; char a[120][30],str[30]; scanf("%d",&cas); wh... 阅读全文
posted @ 2015-02-09 20:48 xryz 阅读(146) 评论(0) 推荐(0) 编辑
摘要:考虑十位是1时的特殊情况,其他都是正常的。#includeint main(){ int cas,n,n1; scanf("%d",&cas); while(cas--) { scanf("%d",&n); n1=(n/10)%10; ... 阅读全文
posted @ 2015-02-09 20:44 xryz 阅读(131) 评论(0) 推荐(0) 编辑
摘要:注意分类方法,输入的数据都是特殊的那些情况,不用考虑太复杂……#includeint main(){ int cas; double a,b,c,d,e,f; scanf("%d",&cas); while(cas--) { scanf("%lf%lf%l... 阅读全文
posted @ 2015-02-09 20:42 xryz 阅读(109) 评论(0) 推荐(0) 编辑
摘要:突然想起要写这一篇,就好像突然要有这个博客一样。刚开始博客里只有几道水题的代码,寒假开始后,才有了一些入门题目的代码。虽然好多题目都是看了网上的一些解释才打下去的,但是多少还是自己的努力。前几天开始认真的看算法竞赛入门经典(第二版),所以有了一些读书摘记。我写这个博客的目的主要是acm学习交流。自己... 阅读全文
posted @ 2015-02-09 16:46 xryz 阅读(124) 评论(0) 推荐(0) 编辑
摘要:输出的三个数分别为中位数,与中位数值相同的数字个数,可能成为中位数的数字的个数。分成n为奇数和偶数讨论,奇数时中位数值只有一个,偶数时中位数可能有两个,可能成为中位数的是这两个值中间的数字个数。#include#includeusing namespace std;int main(){ in... 阅读全文
posted @ 2015-02-09 16:01 xryz 阅读(120) 评论(0) 推荐(0) 编辑
摘要:#include#includeint main(){ int map[1024][1024],a,b; int n,i,j; bool f; while(~scanf("%d",&n)) { if(n==0) break; memset(m... 阅读全文
posted @ 2015-02-09 12:21 xryz 阅读(76) 评论(0) 推荐(0) 编辑
摘要:#include#includeint main(){ char s[100024],t[100024]; bool f; int i,j,len1,len2; while(scanf("%s %s",s,t)!=EOF)//scanf前面多加了~导致超时 { ... 阅读全文
posted @ 2015-02-09 11:59 xryz 阅读(97) 评论(0) 推荐(0) 编辑
摘要:p2:根据规范做事,一切尽在掌握中p6:尽量用const关键字声明常量p14:C99 double输入用%lf,输出用%fp15:如何连续输出"%"和"d"?英文维基printf解释项p16:三角函数使用弧度而非角度p20:floor(x)返回不超过x的最大整数p26:factorical 阶乘p2... 阅读全文
posted @ 2015-02-04 20:58 xryz 阅读(116) 评论(0) 推荐(0) 编辑
摘要:#include "stdio.h"#include "string"#include "algorithm"#includeusing namespace std;int cmp(string a,string b){ return a+b>b+a;}int main(){ int n,i; st... 阅读全文
posted @ 2015-02-04 19:38 xryz 阅读(113) 评论(0) 推荐(0) 编辑
摘要:刚开始一列一列考虑,最后再减去能去掉几列,后来才发现是错误的。单独考虑某一列,同时去掉几列时,单独考虑的不一定成立。后来一查是算法竞赛入门经典里面的p188页的位向量法。原来一直以为这边书空有理论,现在想想只是自己找不到如何用,以后还是要好好看着这几本书。还有可以用strcmp来比较字符串,刚开始自... 阅读全文
posted @ 2015-02-03 20:33 xryz 阅读(193) 评论(0) 推荐(0) 编辑
摘要:参考uva 10160 Servicing Stations(DFS+剪枝)#include "stdio.h"#include "string.h"#include "algorithm"using namespace std;//map保存联通关系,vis保存是否有服务,son记录每个点与他联通... 阅读全文
posted @ 2015-02-03 15:58 xryz 阅读(209) 评论(0) 推荐(0) 编辑
摘要:注意可能有很多点,但是只有一条路与终点相通。不剪枝一定超时,所以先从终点开始#include "stdio.h"#include "string.h"int ans,sum,vis[25][25],cnt,v[25],c[25],ok[25];void pdfs(int st)//从后面开始搜索,标... 阅读全文
posted @ 2015-02-01 16:34 xryz 阅读(112) 评论(0) 推荐(0) 编辑
摘要:八皇后问题变形,参考算法竞赛入门P191页。能过uva,过不了hdu……想想是不是还要第一次就走最大的那个格子……#include "stdio.h"#include"string.h"//v保存每个格子价格,sum最后答案,vis0表示当前行,vis1表示i+j对角线,vis2表示j-i对角线in... 阅读全文
posted @ 2015-02-01 11:01 xryz 阅读(119) 评论(0) 推荐(0) 编辑