自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

转载 NYOJ 229

View Code 1 /* 2 DP: 3 状态转移方程: 4 DP[i][j]记录的是 前 i 个人完成 j 个 A 工作后 还可以 完成多少 B 5 二分: 6 找到可能花费的最小时间 maxtime,和最大时间 mintime 7 midtime=(maxtime+mintime)>>1; 8 9 midtime 就...

2012-05-11 21:13:00 104

转载 NYOJ 523

View Code 1 /* 2 简单的 BFS 相当于三维迷宫 3 4 */ 5 #include<iostream> 6 #include<cstdio> 7 #include<cstring> 8 #include<queue> 9 using namespace s...

2012-05-11 16:38:00 108

转载 NYOJ 30

View Code 1 /* 2 思路: 3 枚举 + 贪心 4 首先枚举只在前 i 个Lake钓鱼(1<=i<=n) 5 因为每段路上只走一次 那么总时间减去 从第一个Lake到第 i 个Lake 6 路上所花的时间 ,剩下的时间就是钓鱼所用的时间(这样就可以这样处理: 7 从一个Lake可以立即到另一个Lake)这就可以利用贪心 每...

2012-05-11 15:43:00 126

转载 NYOJ 510 POJ 1062

View Code 1 /* 2 思路: 3 dijkstra变形 4 因为有等级限制 5 我们就假设 第 i 个人参加交易 以他的等级为最大等级 6 把不符合等级要求的人的 flag[i]=true(相当于这个人不参与交易 也即不在这个最短路图中) 7 这就把所有可以参加交易的人留了下来 8 price[i][j]存放的是 在有物品 i 的 情...

2012-05-11 10:22:00 89

转载 NYOJ 203

View Code 1 /* 2 最短路 + 0-1背包 3 先用 DIJ 求出 起点到各个点的最短距离 相当于 4 各个物品的体积,各个点的宝物数 相当于 价值 5 总粮食相当于 背包容量 6 剩下的就是 纯粹的 0-1背包问题了 7 */ 8 #include<iostream> 9 #include...

2012-05-10 20:14:00 83

转载 NYOJ 99 POJ 2337

View Code 1 /* 2 1.先用并差集判断图是否连通 3 2.判断是否存在欧拉路或欧拉回路 4 3.DFS求欧拉路径 5 */ 6 #include<iostream> 7 #include<cstdio> 8 #include<cstring> 9 #include<a...

2012-05-10 16:39:00 174

转载 把一个图变成任意两点可达需要添加边的条数

给你一个图最少添加几条边能使他任意两点可达:有向图(连通图) 找出入度为零的顶点的个数 m 找出出度为零的顶点的个数 n 则需要添加的边数为:max(m,n);例题:NYOJ 120猜测:强连通缩点可以用来求有几个环以下是NYOJ 120题用强连通缩点做的,改变后用来求环:View Code 1 /*可以用来求环数*/ ...

2012-05-09 22:28:00 142

转载 NYOJ 307

View Code 1 /* 2 题外话: 3 没想到这是一道最短路题 4 原来最短路可以这样变形,有时也可以多次利用最短路 5 求一个问题 6 思路: 7 我们从每个有藏宝的地方为起点 求到各个点的可以的最大 8 重量 9 10 我们相当于求出了从出口 到 一个藏宝点 所 11 允许的最大重量 12 13 ...

2012-05-08 21:12:00 67

转载 NYOJ 306

View Code 1 /* 2 题外话: 3 这道题看了好久开始以为是动态规划, 4 但怎么也看不出怎么做。 5 今看别人的代码发现竟如此简短! 6 而且还是 DFS 原来这是一道深搜题 7 而且还用到了 二分查找 8 思路: 9 先得到 可能的最小差值:是 first = map[n][n]-map[1][1];10 可能的最大差值是...

2012-05-07 21:51:00 117

转载 NYOJ 247

View Code 1 /* 2 思路: 3 利用最短路的变形 4 分别从起点搜一次 5 从终点搜一次 6 从起点搜出从起点到达各点的最小值 7 从终点搜出从终点到达各点的最大值(所有可以到达的点) 8 9 主要思想是: 10 从 1 到 i 再从 i 到 n 11 从 1 到 i 时 路径是正着存的 1...

2012-05-07 19:06:00 90

转载 NYOJ 309

View Code 1 /* 2 题意:在一个滑雪道上没个单位长度可以减速 1 ,也可 3 增速 1 ,也可保持不变,滑雪道中有一些corner,在此处要限制速度, 4 问在整个滑雪过程中可以获得最大速度。 5 思路: 1.先求出每点可以允许的最大速度 6 2.然后从起点起计算每点能达到的速度 7 3.求最大速度 8 ...

2012-05-03 19:22:00 73

转载 NYOJ 303

View Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<stack> 6 using namespace std; 7 8 char ch[10...

2012-05-01 17:45:00 95

转载 NYOJ 308

View Code 1 /* 2 注意: 3 题非常简单,读题有误 4 不是求最长回文子串 5 而是求 原串的一个子串 ,这个子串反转后还是原串的子串 6 相当于求原串和他的反转串 的最长公共子序列(连续) 7 */ 8 9 #include<iostream>10 #include<cstdio>11 #...

2012-05-01 16:29:00 113

转载 NYOJ 251

View Code 1 /* 2 题非常简单,但是英文 看了好久才理解意思 3 题意: 4 多人进行投标 每个人可以对同一物品可以投多次标但 价格必须 5 不一样。 6 1.若有一个投标价值出现一次则这个投标人胜出 7 2.若 没有唯一的投标价则 那个投标价投的次数最少,这个价格就是 8 胜出的价格,若有多个价格 有最少的投标次数 9 则去价格...

2012-04-24 20:20:00 101

转载 NYOJ 170

View Code 1 /* 2 开始把这个题想复杂了, 3 其实很简单: 4 思路: 5 找出所有度数为 1 的节点数,消除这些度数为1的节点至少需要多少遍 6 原理: 7 度数为 1 的节点只要把与之相连的那个节点去掉就成孤立的了 8 因此我们再加一条边即使原来的那个邻接点坏了 还有一个边与之相连 9 */10 11 #includ...

2012-04-24 11:24:00 70

转载 ZOJ 3332 (哈密顿路竞赛图)

参考:http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/21/2462351.htmlView Code 1 /* 2 ZOJ :3332 3 思路: 4 这是个竞赛图问题 5 寻找图中的哈密顿路 6 竞赛图中一定有哈密顿路, 7 竞赛图去掉一个顶点和其关联的边仍...

2012-04-21 20:49:00 147

转载 哈密顿路及竞赛图

定理1:n(n>=2)阶竞赛图一定存在哈密顿通路证明转载自http://web.nuist.edu.cn/courses/lssx/longtime/part4/chapter15/15_02_03_02.htm证 对n作归纳法。n=2时,D的基图为K2,结论成立。设n=k时结论成立。现在设n=k+1.设V(D)={v1,v2,…,vk,vk+1}。令D1=D-vk+1,易...

2012-04-21 20:46:00 441

转载 HDOJ 4034

View Code 1 /* 2 最短路: 3 floyd倒着用 4 优秀代码中这样判断 5 若: path[i][j]>path[i][k]+path[k][j]则 这不是 最短路 是 impossible 6 若:path[i][j]==path[i][k]+path[k][j] 则 从 i到 j 用不着直接路径 7 */ 8 #...

2012-04-14 15:37:00 81

转载 POJ 1191 (DP)

View Code 1 /* 2 思路: 3 我们可以对棋盘进行横向切割和竖向切割 4 s[n][x1][y2][x2][y2]表示:棋盘的左上角坐标是(x1,y1),右下角坐标 5 为(x2,y2) 把这个棋盘分割成 n 一块 6 横向分割: 7 可以在 a处分割 (x1=<a<x2) 比较是 留哪一个继续分割 ...

2012-04-14 12:20:00 59

转载 博弈

(一)巴什博弈(Bash Game):只有一堆n个物品,两个人轮流取,每次最少取一个,最多取m个,最后取完物品者得胜。若有A,B两人,若A先取,在双方都选择最优时,A能否取胜。若 n%(m+1)!=0则先取者A必胜,因为第一次A先取走n%(m+1)个剩下的是(m+1)的倍数因最多只能去m个因此B若去走K个则A可以取走( m+1-k)个他们取走的和为( m+1)则每次剩...

2012-04-11 20:36:00 82

转载 POJ 1067 威佐夫博弈

View Code 1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int a,b; 7 double con=(1+sqrt(5.0))/2; 8 while(scanf("%d%d",&a,&b)!=EOF) 9 ...

2012-04-11 20:05:00 48

转载 NYOJ 188 Arbitrage

View Code 1 /* 2 题意: 3 货币之间存在着转换 ,从一种货币转换到 4 另一种货币有有一个转换率,有没有这种情况 5 一种货币经过几次转换再回到这个货币时 6 会增值 7 8 思路: 9 这相当与一个路径问题,找到各个点的最大距离10 每次从一条边的左边的货币开始转换,看是否能11 增值 有几条边循环几次 12 *...

2012-04-10 20:54:00 83

转载 NYOJ 104(最大和)

这是一道动态规划题目,利用一维数列的最大子段和求多维的最大子段和。下列代码中的 psub()子函数就是求一维数列的动态规划。我们依次吧几行数据加到一行上相当于选中了好几行,然后再判断取几列能使其最大。自己的代码:View Code 1 #include<stdio.h> 2 3 int map[101][101]; 4 int sum...

2012-04-09 21:50:00 61

转载 NYOJ 61(传纸条)

NYOJ 61 传纸条是一个双线DP的题:从矩阵的左上角(1,1)点到矩阵的右下角(m,n)点找到两条不相交的路径使其值最大,题中是从(1,1)到(m,n)走一次,再从(m,n)到(1,1)走一次,我们可以等价变形一下,变为:同时从(1,1)走向(m,n)找两条路,且这两条路不相交,同时走!假设有两个人在走,一个人的坐标为(x1,y1),另一个人的坐标为(x2,y2...

2012-04-09 17:10:00 79

转载 NYOJ 288

View Code 1 #include<stdio.h> 2 3 int a[1000001]; 4 5 int main() 6 { 7 int i; 8 int n,c,q,x,y,z,t; 9 scanf("%d%d%d",&n,&c,&q);10 while(c--)11 {12 sc...

2012-04-08 21:39:00 64

转载 算法

优秀博客推荐:各种数据结构与算法知识入门经典(不断更新)欢迎自荐和推荐链接。请于留言处告知。基本算法贪心算法:贪心算法作者:独酌逸醉 贪心算法精讲作者:3522021224递归和分治:递归与分治策略作者:zhoudaxia图论图的遍历(DFS和BFS):图的遍历 作者:jefferent最小生成树(Prim算法和Kruskal算法):贪心算法-...

2012-04-08 19:27:00 64

转载 分治

求一个混合数列中 指定区间内第K小的数:View Code 1 #include<stdio.h> 2 3 int num[2010]; 4 5 int query(int L,int R,int K) 6 { 7 if(L == R)return num[L]; 8 int i=L; 9 int j=R;10 int mid=num...

2012-04-04 20:03:00 61

转载 NYOJ 479 (数的互质)

参考:http://en.wikipedia.org/wiki/Euler%27s_totient_functionView Code 1 #include<stdio.h> 2 3 int main() 4 { 5 int n,i; 6 bool flag; 7 while(scanf("%d",&n) != EOF) 8 ...

2012-04-04 15:19:00 84

转载 NYOJ 202 红黑树

View Code 1 /* 2 旋转都是废话 3 直接找他的中序序列就行 4 用数组 模仿建树 5 */ 6 #include<iostream> 7 #include<cstdio> 8 #include<algorithm> 9 using namespace std;10 11 struct node12 {13 int h;...

2012-04-03 22:06:00 72

转载 蛇形填数 总结

第一种:对于第一种填数:我们一 1 为起始点 先判断下一个点是否越界 和 是否是空的 ,来决定是转还是填View Code 1 #include<stdio.h> 2 3 int a[100][100]; 4 5 int main() 6 { 7 int n,i,j,t,x; 8 scanf("%d",&n); 9 ...

2012-04-03 17:34:00 69

转载 POJ 2551 (同余问题)

View Code 1 /* 2 注意: 3 111111 的余数是 111110的余数 +1 4 以此类推 5 */ 6 7 #include<stdio.h> 8 9 int main()10 {11 int n;12 while(EOF != scanf("%d",&n))13 {14 int t = 1%n;15 ...

2012-04-03 14:53:00 49

转载 同余定理

声明:借鉴高手!一、 同余对于整数除以某个正整数的问题,如果只关心余数的情况,就产生同余的概念。定义1 用给定的正整数m分别除整数a、b,如果所得的余数相等,则称a、b对模m同余,记作a≡b(mod m),如 56≡0 (mod 8)。定理1 整数a,b对模m同余的充要条件是 a-b能被m整除(即m|a-b)。证 设a=mq1+r1, 0<=r1<m;...

2012-04-03 08:43:00 472

转载 HCOJ 1001 Jewelry(搜索)

View Code 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 char map[14][7]; 6 bool isw[14][7]; 7 bool f; 8 char newc[3]; 9 int m; 10 int dir[8][8]={ ...

2012-04-02 19:58:00 244

转载 NYOJ 287 Radar

View Code 1 /* 2 这是一个贪心问题: 3 以岛屿为圆心,以雷达半径为半径画圆 和 X轴有两个交点 这就是说在这个范围内安装雷达都可以覆盖到 4 此岛屿 5 我们求出所有的这样的 区域 然后以左边界从小到大排列,左边界相同的 按右边界 从 大到小排列 6 7 我们只需关心 下一个范围十分 在 tr 左边 8 特别要注意的是 更新 tr 时 取得时 ...

2012-04-02 16:26:00 82

转载 NYOJ 364 田忌赛马

View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int T[1001]; 5 int K[1001]; 6 7 int cmp(const void *x,const void *y) 8 { 9 int *m = (int *)x;10 int *n = (int *)y;1...

2012-04-02 12:52:00 79

转载 NYOJ 205 求余数

//10的8次方对 10003 mod 是 9 这是为什么要 乘以9了View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 5 char a[1000001]; 6 7 int main() 8 { 9 int t,...

2012-04-02 10:52:00 75

转载 POJ 1664 放苹果(整数划分)

View Code 1 #include<iostream> 2 using namespace std; 3 4 int divs(int m,int n) 5 { 6 if(m<0)return 0; 7 if(m == 0 || n==1)return 1; 8 return divs(m-n,n) + divs(m,n-1); 9 ...

2012-04-01 19:24:00 64

转载 NYOJ 248 BUYING FEED

View Code 1 2 #include<iostream> 3 #include<algorithm> 4 using namespace std; 5 6 struct node 7 { 8 int x; 9 int f;10 int c;11 }a[101];12 13 bool cmp(node x,node y)14...

2012-04-01 13:40:00 66

转载 NYOJ 176 整数划分(二)

View Code 1 #include<stdio.h> 2 #include<iostream.h> 3 4 int divs(int m,int n) 5 { 6 if(n==1)return 1; 7 if(m == n)return 1; 8 if(m < n)return 0; 9 if(m>n)...

2012-04-01 13:39:00 57

转载 NYOJ 90 整数划分(一)

View Code 1 #include<iostream> 2 using namespace std; 3 4 int divs(int m,int n) 5 { 6 if(m<1 || n<1)return 0; 7 if(m == 1 || n==1)return 1; 8 if(m<n)return divs(m,m); 9...

2012-04-01 13:38:00 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除