上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 44 下一页
摘要: 题目链接又是输出路径。。。这题完全受上题影响,感觉两个题差不多。。用了基本上一样的算法写了,这题比较纠结,就是卡内存啊。。。5000*5000的数组开不了。。然后没办法,水了好几次MLE,看了一下虎哥的思路,完全不是一个套路,我写复杂了。。我啪啪按他的思路来了一次,就是过不了第三组,貌似得交了一二十次了。。。我把5000*5000降了降,因为只要i 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 1000000... 阅读全文
posted @ 2013-09-05 19:43 Naix_x 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目链接本来用区间DP,3次方的复杂度,T了,看了看题解,降维,直接二次方的复杂度可以解。然后折腾一下输出路径。。终于过了。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 char str[4001]; 9 int dp[4001][4001];10 int p[4001];11 int pre[4001];12 int flag[4001];13 int main()14 {15 int i,len,j;16 scanf("%s"... 阅读全文
posted @ 2013-09-04 11:28 Naix_x 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 题目链接本来觉得这不是经典的贪心吗。。果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了。。。然后想想单调队列,二分什么的。。。不好往上加,直接搞了标记数组flag,暴力从大到小,遍历寻找,然后就过了。。。这算是优化吗,瞎搞。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 struct node 9 {10 int x,y;11 }p[100001];12 int dp[100001];13... 阅读全文
posted @ 2013-09-03 16:09 Naix_x 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目链接不知为何会在dp里呢。。。INF取小了,2Y。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define INF 1e911 int l1,l2,l3,c1,c2,c3;12 int p[20001];13 int dis[20001];14 int in[20001];15 int judge(int x,int y)16 {17 int d = p[x] - p[y];18 ... 阅读全文
posted @ 2013-09-03 14:37 Naix_x 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目链接理解了题意之后,就不难了。。状态压缩+暴力. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 int dp[1= 1;i --)33 {34 for(j = 0;j = n)44 t2 = 0;45 else46 t2 = j+1;47 if(x... 阅读全文
posted @ 2013-09-03 12:11 Naix_x 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 水题。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 #define INF 10000000011 int flag[1001][1001];12 double dis[1001][1001];13 int main()14 {15 int i,j,n,m,k,x,y;16 double temp;17 scanf("%d%d%d",&n,&m,&k);18 for(.. 阅读全文
posted @ 2013-09-03 09:56 Naix_x 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接隔了一年零三个月,重新刷URAL,这题挺麻烦的输出路径。输出路径挺扯的,乱写了写乱改改就A了。。。我本来想用很靠谱,记录每一条路径的,然后输出最小的,结果Tle,然后我使劲水水又过了一组,发现别人的题解。。直接来了一次 就过了。。我乱搞了搞,倒着记录最小的,然后倒着输出,就过了。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define INF 1000000010 int dp[901][8101];11 ... 阅读全文
posted @ 2013-09-02 20:20 Naix_x 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题目链接去年区域赛的题目,早就看过题目了,又是过了好久了。。。这题状态转移,一看就知道应该是 线性的那种,不过细节真的不好处理,一直没想出怎么搞,期间也看过题解,好像没太看懂。。。dp[i][j]表示前i位相同,i之后两位为j的最小转动次数。例如dp[i][x*10+y] i+3位 为z(初始数字),x y z 转化为 ax ay az,ax肯定是第二个串的第i位,后两位随便就可以。只要 预处理 xyz 转化为axayaz的情况,就行了。dp[0]初始化,100位直接Floyd,其他的1000位的预处理,用spfa搞的。预处理写的很长。。 1 #include 2 #include ... 阅读全文
posted @ 2013-09-02 11:39 Naix_x 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 题目链接来个水题。。难得的1Y。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define LL __int64 6 int flag[31],que[31]; 7 LL fact[31]; 8 int n; 9 LL m;10 void dfs(LL x,int step)11 {12 LL temp = 0;13 int i;14 for(i = 1;i = x)19 {20 flag[i] = 1;21 ... 阅读全文
posted @ 2013-08-31 21:40 Naix_x 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目链接很早 很早之前就看过的一题,今天终于A了。状态转移,还算好想,输出路径有些麻烦,搞了一个标记数组的,感觉不大对,一直wa,看到别人有写直接输出的。。二了,直接输出就过了。。 1 #include 2 #include 3 #include 4 using namespace std; 5 int dp[201][201]; 6 int flag[201]; 7 int pos[201]; 8 char str[201]; 9 int dfs(int L,int R) 10 { 11 int i,minz; 12 if(dp[L][R]) 13 ... 阅读全文
posted @ 2013-08-31 19:50 Naix_x 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目链接什么都不想说,最近状态暴跌。。 1 #include 2 #include 3 #include 4 using namespace std; 5 int p[4][101]; 6 int sum[30][30]; 7 int dp1[30][30],dp2[30][30]; 8 int dp[30][30][30][30]; 9 int dfs1(int x1,int y1)10 {11 if(dp1[x1][y1])12 return dp1[x1][y1];13 if(x1 == y1)14 return dp1[x1][y1] = p[1]... 阅读全文
posted @ 2013-08-28 21:28 Naix_x 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题目链接USACO 第6章,第一题是一个插头DP,无奈啊。从头看起,看了好久的陈丹琦的论文,表示木看懂。。。大体知道思路之后,还是无法实现代码。。此题是插头DP最最简单的一个,在一个n*m的棋盘上,有些点能走,有些点不能走,可以走一条回路,也可以多回路,把所有点走完,有多少种走法。。这题的背景还是dota,还是屠夫,还是吃树。。。我还是不会玩屠夫啊。。。学习此题,看的下面的大神的博客,图画很棒,位运算又学了一个新用法。http://blog.csdn.net/xymscau/article/details/6756351 1 #include 2 #include 3 using name.. 阅读全文
posted @ 2013-08-28 14:13 Naix_x 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 非常不容易的一题,思路就是DP之后输出路径。但是此题,路径和DP的方式不一样,路径要按字典序输出。开始写了一个版本,N 10000的时候就是过不了,后来才发现,自己的写法有问题,无法保证字典序。看了看题解,其实也不是很懂。终于还有3个题,加油了!! 1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: twofive 5 */ 6 #include 7 #include 8 using namespace std; 9 char str[101];10 char te[101];11 int dp[6][6][6][6][6];12 int judge(int x,i.. 阅读全文
posted @ 2013-08-26 10:46 Naix_x 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 水了好几下。优化1:开始初始化的时候,如果左边那个也是最小值,那么此点就不用进队了。优化2:如果队列里的位置,已经超过了后面位置的初始位置,那么后面这个位置也没用了。 1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: hidden 5 */ 6 #include 7 #include 8 #include 9 #include 10 #include 11 using namespace std;12 int que1[200001],que2[200001];13 char str[300001];14 int main()15 {16 int i,l... 阅读全文
posted @ 2013-08-19 19:58 Naix_x 阅读(178) 评论(0) 推荐(0) 编辑
摘要: POJ最近做过的原题。 1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: picture 5 */ 6 #include 7 #include 8 #include 9 #include 10 #include 11 using namespace std; 12 #define maxn 10000 13 #define lson l , m, rt S.s; 29 return y x) 42 end = mid - 1; 43 else 44 st... 阅读全文
posted @ 2013-08-19 17:46 Naix_x 阅读(188) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 44 下一页