上一页 1 ··· 7 8 9 10 11 12 13 14 下一页
  2011年8月21日
摘要: poj 2352题目大意:解决:树状数组,关键是要将x轴的下标从一开始可以将x都加1#include <iostream>#include <cstdio>using namespace std;const int N=32005;int n;int c[N];int lev[N];int lowbit(int x){ return x&(-x);}void updata(int pos,int inc){ for(int i=pos;i<N;i+=lowbit(i)) c[i]+=inc;}int getsum(int pos){ int sum=0; 阅读全文
posted @ 2011-08-21 11:36 猿类的进化史 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 简单搜索(1)深度优先搜索 (poj2488,poj3009,poj1321) (2)广度优先搜索 (poj3278,poj1426,poj3126,poj3087.poj3414,poj2251,poj3083)(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)搜索、回溯、遍历1022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 23861010,1011,1018,1020,1054,1062,1256,1321,1363,1501,1650,... 阅读全文
posted @ 2011-08-21 00:01 猿类的进化史 阅读(3788) 评论(0) 推荐(0) 编辑
  2011年8月20日
摘要: poj3259题目大意:给出一个F代表农场的个数,其实就是测试样例组数,给出个N代表每个农场包含N个厂区,M代表N个厂区之间之间的路径条数,W表示有W个虫洞题目上说路径是双向的,虫洞是单向的,意味着是有向图,并且说虫洞从一个顶点到另一个顶点让时间倒流,意味着路的权值是负值,接下来的M行是路径的条数,并且题目已经说明是一个厂区到另一个厂区不一定只有一条路(Two fields might be connected by more than one path.),接下来的W行是虫洞的起始和结束位置,还有让时间倒退的值。解决:首先是建图,我用邻接矩阵,建图的时候要注意两个厂区之间不一定只有一条路,要 阅读全文
posted @ 2011-08-20 23:38 猿类的进化史 阅读(568) 评论(0) 推荐(0) 编辑
摘要: poj 1860题目大意:给出n货币种类数,从1....n,给出m表示交换货币的地点,s表示源点的编号,v表示起始总钱数,接下来m行,每行6个分别是从a到b和a到b的利率,a到b的费用,b到a的利率,b到a的费用,可以建图了。解决:spfa直接就出来了#include <iostream>#include <queue>using namespace std;struct node{ int v; double w,c; int next;};node e[100000];const int N=110;int pos;int head[N];int n,m,s;dou 阅读全文
posted @ 2011-08-20 02:06 猿类的进化史 阅读(422) 评论(0) 推荐(0) 编辑
  2011年8月19日
摘要: ACM学习资料ACM基本算法分类、推荐学习资料和配套pku习题一.动态规划 参考资料: 刘汝佳《算法艺术与信息学竞赛》《算法导论》 推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141 简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288 中等,经典TSP问题http://acm.pku.edu.cn/JudgeOnline/problem?id=2411 中等,状态压缩DPhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1112 中等http:/ 阅读全文
posted @ 2011-08-19 19:58 猿类的进化史 阅读(255) 评论(0) 推荐(0) 编辑
摘要: poj1364题目大意:给你n个数,组成一个集合s={a1,a2....an},再给你m个条件满足a[si]+a[si+1]...+a[si+ni] 后边一个关系,比如第一个条件是 a[1]+a[2]+a[3]>0然后转化为s[3]-s[0]>0>=1第二个条件是a[2]+a[3]+a[4]<2;转化为 s[4]-s[1]<2<=1这是做的第一道差分约束题,问了好几个同志,最终差不多了,就过了差分约束只是对于>= 或者<=使用,如果说求最大值的话,限制条件肯定是<=关系,然后建立图,求最短路径,找负环。相反的不说了。引用discuss里几句 阅读全文
posted @ 2011-08-19 16:53 猿类的进化史 阅读(437) 评论(0) 推荐(0) 编辑
  2011年8月18日
摘要: poj 2387题目大意:求出图中最短的路径解决:迪杰斯特拉 或者 spfa 在此处用spfa(队列)#include <iostream>#include <cstdio>#include <queue>using namespace std;const int N=1005;const int MAX=0x3f3f3f3f;int cost[N][N];int dist[N];bool inq[N];int n;void init(int v0){ for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) c 阅读全文
posted @ 2011-08-18 13:33 猿类的进化史 阅读(196) 评论(0) 推荐(0) 编辑
  2011年8月17日
摘要: nyist 129题目大意:解决:归并排序#include <iostream> #include <cstdio>using namespace std;int num[1000005];int tmp[1000005];long long total;void merge(int beg,int mid,int end){ int i=beg,j=mid+1,k=0; while(i<=mid && j<=end) {//最关键的是下边这句话total+= mid-i+1;意思是前边比后边这个数大的个数 if(num[i]>num[ 阅读全文
posted @ 2011-08-17 20:04 猿类的进化史 阅读(201) 评论(0) 推荐(0) 编辑
摘要: poj 2240题目大意:给出不同的货币,然后是一种对另一种的兑换比率,若从一种货币,经过若干次兑换又换回本身,原来是1元,回来时比一元多,就输出Yes 否则输出No解决:floyd算法#include <iostream>#include <string>using namespace std;const int N=35;double cost[N][N];int n;void init(){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(i==j)cost[i][j]=1.0; else cost[i][j] 阅读全文
posted @ 2011-08-17 11:19 猿类的进化史 阅读(279) 评论(0) 推荐(0) 编辑
摘要: hdoj 3789题目大意:解决:用sort函数中不同的cmp15MS1212K#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=1000000;struct node{int id; int gold;int total;double goldper;double totalper;};node nation[N];int num[N];bool mark[N];int rank[N] 阅读全文
posted @ 2011-08-17 07:40 猿类的进化史 阅读(427) 评论(1) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 下一页