上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页
摘要: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1336There is an interesting calculator. It has 3 rows of buttons.Row 1: button 0, 1, 2, 3, ..., 9. Pressing each button appends that digit to the end of the display.Row 2: button +0, +1, +2, +3, ..., +9. Pressing each button adds that digit to the dis 阅读全文
posted @ 2013-12-16 14:27 紫忆 阅读(1576) 评论(0) 推荐(0) 编辑
摘要: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1352题意:就是要将7 1 5 2这样的序列变成1 2 5 7最少需要多少步?给出变的规律,每次把最前面的那个数移动到比它次小的数的后面,要是它后面没有比它次小的数,就移动到最后,问最少需要多少步?For example, we will use 7 steps to sort the sequence 7 1 5 2: 7 1 5 2 --> 1 5 7 2 --> 5 7 2 1 --> 7 2 5 1 --> 2 5 7 1 --> 5 7 1 2 --> 阅读全文
posted @ 2013-12-16 13:10 紫忆 阅读(712) 评论(0) 推荐(0) 编辑
摘要: hdu3191题意:求出次短路的长度和条数#include#include#include#include#includeusing namespace std;const int MAXN=55;const int inf=1vet[MAXN];struct Node{ int v,dist; int mark;//标记,1为最短路,2为次短路; bool operator Q; Node p,q; dist[start][1]=0; dp[start][1]=1; p.dist=0,p.mark=1,p.v=start; Q.push(p);... 阅读全文
posted @ 2013-12-11 20:51 紫忆 阅读(1664) 评论(0) 推荐(0) 编辑
摘要: 题意:有个4*4的开关,里面有着16个小开关-+---------- '+'表示开关是关着的,'-'表示开关是开着的,只有所有的开关全被打开,总开关才会被打开。现在有一种操作,只要改变某个开关,那么这个开关的行列所在开关都会被改变-+-- 问,要打开总开关至少要改变多少次开关?并输出改变开关的位置。思路: 由于每个开关只有两种状态,那么对于这16个小开关,我们可以用2进制来压缩下,如果开关是打开的那么为'0',如果是关着的,那么为'1',如此,我们就可以从下到上,从右到左给这16个开关标记状态,如果以某个点为中心,那么这个点的行列 阅读全文
posted @ 2013-12-08 14:54 紫忆 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 题意:有个4*4的棋盘,上面摆着黑棋和白旗,b代表黑棋,w代表白棋,现在有一种操作,如果你想要改变某一个棋子的颜色,那么它周围(前后左右)棋子的颜色都会被改变(白变成黑,黑变成白),问你将所有棋子变成白色或者黑色最少的步数。思路:状态压缩+搜索。对于#include#include#include#includeusing namespace std;int t[20]={ 51200,58368,29184,12544, 35968,20032,10016,4880, 2248,1252,626,305, 140,78,39,19,};int M=1q; nod... 阅读全文
posted @ 2013-12-08 14:30 紫忆 阅读(1181) 评论(0) 推荐(0) 编辑
摘要: 题意:就是说,给出一个三行三列的数组,其中元素为1--8和x,例如:1 2 3 现在,需要你把它变成:1 2 3 要的最少步数的移动方案。可以右移r,左移l,上移u,下移dx 4 6 4 5 67 5 8 7 8 x思路:这是赤裸裸的康托展开了吧?不知道康托展开的同学可以百度百科........好吧,其实我想说的是,这个题目怎么分析出,要用到康托展开的。首先,遇到这样的题目,元素比较少,又可以用到搜索,但是状态数比较多,也就是说,我需要找到一种方式来压缩这些状态,使得... 阅读全文
posted @ 2013-12-08 14:18 紫忆 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个点,m条边,要你判断最小生成树是否唯一。思路:先做一次最小生成树操作,标记选择了的边,然后枚举已经被标记了的边,判断剩下的边组成的最小生成树是否与前面的相等,相等,则不唯一,否则唯一......#include#include#include#includeusing namespace std;struct node{ int v1,v2; int dis; int flg;} s[10000];int cmp(const node a,const node b){ if(a.dis<b.dis) return 1; else ... 阅读全文
posted @ 2013-12-08 13:30 紫忆 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 题目大意是:一个由0,1组成的数字串~~,现在你问一个人,第i位到第j位的1的个数为奇数还是偶数。一共会告诉你几组这样的数要你判断前k组这个人回答的都是正确的,到第k+1组,这个人说的是错的,要你输出这个k,要是这个人回答的都是正确的,则输出组数odd为奇数,even为偶数。Sample Input1051 2 even3 4 odd5 6 even1 6 even7 10 oddSample Output3思路:赤裸裸的种类并查集吧.......其中,我们把一段区间为奇数标记为0,为偶数标记为1,然后如果区间连贯,也就是说区间1到区间2,区间3到区间4,那么就是可以连贯成区间1到区间4的,如 阅读全文
posted @ 2013-12-08 13:24 紫忆 阅读(1446) 评论(1) 推荐(1) 编辑
摘要: 题意:有n个点,标号为点1到点n,每条路有两个属性,一个是经过经过这条路要的时间,一个是这条可以承受的容量。现在给出n个点,m条边,时间t;需要求在时间t的范围内,从点1到点n可以承受的最大容量........思路:其实我是觉得思路挺简单的,就是二分枚举每条边的容量,然后再看在这个容量的限制下,是否可以从点1到点n........方法1:二分枚举边的容量,然后一次dfs,判断在容量和时间的双重限制下,是否可以从点1到达点n......wa代码:#include#include#include#include#include#includeusing namespace std;typedef 阅读全文
posted @ 2013-12-06 16:37 紫忆 阅读(1086) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/368/problem/D题意:有a、b两个数组,a数组有n个数,b数组有m个数,现在给出一个p,要你找出所有的位置q,使得位置q q+p q+2*p .....q+(m-1)*p 经过一定的操作(不改变数据大小)全等于b数组。思路:首先肯定对a数组离散,然后二分对a、b数组分配好离散后的值。其实我们只需要枚举0————p位置,哈希记录,然后从q----一直滚到q(m-1)*p>=n,对于一个数据,出来第一个数,进去最后一个数。这样,如果没有避免对b数组扫描一次,那么还是会超时,额,我在这里超时了几次。这个题目的核心就是如何避免 阅读全文
posted @ 2013-12-02 15:35 紫忆 阅读(372) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页