上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 38 下一页
摘要: http://codeforces.com/contest/245/problem/H题意:给定一个字符串s(1 ≤ |s| ≤ 5000) 然后又q个询问(1 ≤ q ≤ 106) 每次询问包括两个数l,r 求l到r内回文串的个数。思路:自己对dp的感觉真是弱爆了,大牛们16分钟就能A出来的题目,自己想了好久还是没思路,最后看了别人的代码才AC的,弱爆了。dp[i][j] = d[i][j -1] + dp[i + 1][j] - dp[i + 1][j - 1] - R[i][j] 这里R[i][j]表示子串s[i...j]是否是回文串,这里的处理太棒了,自己没能想到。还有就是转移方程也. 阅读全文
posted @ 2012-11-21 20:54 E_star 阅读(219) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/245/E题意:给出一个序列包括'+' '-'两个字符,+表示有人进入该房间,-表示有人离开该房间。这里保证没有同时进出的。求进入过房间的人的最小数目。思路:ym那些大牛们这么快就AC了,这题真是考思维的,哎,弱爆了。。我们考虑,如果遇到‘-’表明肯定有人在房间,并且要出去。所以每当遇到‘-’时,我们只要检查记录里面是否有+,如果有的话,就表明这个人出去,如果没有,就说明原来屋子里有个人我们没有记录,现在要出去了,只要+1即可。我们的到的保持进屋子的最大长度的‘+’序列就是答案。# 阅读全文
posted @ 2012-11-21 11:15 E_star 阅读(181) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1008题意:给定n个串,求这n个串的的最长公共子序列。思路:首先说一下自己的思路,dp确实挺弱的没想到变维dp。就想了一个贪心的算法,贪心是这样的:把s[0]与后边的串匹配,求出所有满足最大长度的子串,然后依据每个串在后边可能出现的概率取最大的继续往后求最长公共子序列,直到结束。这里出现的概率计算:我们统计出现的字符总数,然后计算每个字符出现的概率,然后就可以求子串在后边未参与匹配的串中出现的概率了。这个算法要回溯出所有可能的解,数据大的话会超 阅读全文
posted @ 2012-11-20 21:20 E_star 阅读(579) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/244题意:给定n个数的序列,n(1 ≤ n ≤ 105) 定义f[l,r] = a[l]|a[l + 1]|......|a[r]求该序列所有所有的不同的f[i,j]的值的个数;思路:这题当时看错了写了个n*logn(n)的算法自以为很好结果一提交WA。很明显算法错了。后来怎么想也没想出什么优化来。思维啊.. 纯暴力是(n^3)我们可以通过这个循环来优化到O(n^2) f[j]表示j到i这一段取或操作得到的数for (i = 0; i < n; ++i){ for (j = 0; j < i; ++j){ f[j... 阅读全文
posted @ 2012-11-19 20:22 E_star 阅读(279) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/244题意:给一个数n(1 ≤ n ≤ 109),然后求小于等于n的数,该数并且满足只有两个十进制数(0-9)组成的个数;思路:当时就是一门心思推公式,结果还是没找出规律。赛后想了想推个毛公式啊直接暴力枚举n的长度,然后枚举0到9两辆组合时间复杂度为O(10*10*10*2^10) = O(10^6)啊。哎只怪自己没有想出来吧。这里还要注意当枚举长度为10时可能会出现超数据类型的要用__int64#include <iostream>#include <cstdio>#include <cstdlib&g 阅读全文
posted @ 2012-11-19 20:07 E_star 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 天津赛区是我今年开赛的第一个赛区,和szz还有小花组队感觉很好玩。一夜的硬座,把我们累坏了。本来打算在火车上睡觉的,可是硬座真心睡不着。结果就这样熬了一夜。我们想早上到了报到之后休息一下然后参加热身赛。结果还没等我们收拾好就被拉到了校区参加神马开幕式。累的我们三个直接不行啊。开幕式时,我们三个趴在椅子上上睡了半个小时就好像睡了一天一样舒服。可是照样累的半死。下午热身赛,暴露了各种问题,数据类型溢出,数组大小开小,输入n,m搞倒。不过还好就是一个公式题没做出来其他几个还是做出来了,总之能给我们一点信心吧。 正式赛,我先敲模板,然后他们两个看题,敲完模板后,我开始看第一题,还没等我看完发现B... 阅读全文
posted @ 2012-11-19 17:15 E_star 阅读(206) 评论(1) 推荐(0) 编辑
摘要: 成都赛区回来一段时间了,还没写个总结呢,今天好好写写。 第一次坐火车做这么长时间,两夜三天我们到了。成都赛区的志愿者特别热心,尤其是对虎哥哦.....哈哈。当天我们报完到就入住了旅馆。我歇息了一下,然后就是看模板。话说成都赛区管的饭真心是我参赛以来吃的最好的,住的地方也是最好的... 第一天的热省赛,几个大水题,写的很顺利,好像学校排名很好的样子。敲完几个题目后,我又敲了一个java写了一个题也过了,接下来我想试试C题玩,结果写了很多次提交就是不对,出现各种TLE,RE,WA我和虎哥都很纳闷。最后von一看俩二逼弄着C题交到了A提上能对吗。 正式赛,我从后往前看的,虎哥从前往后看,v... 阅读全文
posted @ 2012-11-19 16:54 E_star 阅读(251) 评论(2) 推荐(0) 编辑
摘要: 话说今天考了C语言的试,各种用文件读写神马的。哥都忘了神马文件读写了。于是前一小时各种想,不过这一小时做的最多是ctrl + alt + delete结束vc++6.0 尼玛我以无力吐槽这神马考试,大头机,vc编译两次就完蛋必须结束进程才能启动。这是考试吗,机房还一股臭脚丫子味,多少年不打扫了。这是练习ctrl + alt + delete命令吧。 哥实在没办法了全部用freopen写的,管他对不对的。哎....伤不起啊。回来还晕的我吐了,晕车的滋味要死啊。回来就看了看这些简单的函数,话说哥想对了,可是考试的时候怎么数据就是读不出来呢,无语。。。#include <stdio.h> 阅读全文
posted @ 2012-11-03 22:55 E_star 阅读(173) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3686题意:给定n个玩具,有m个车间,给出每个玩具在每个车间的加工所需的时间mat[i][j]表示第i个玩具在第j个车间加工所需的时间,规顶只有第i个玩具在j车间完成时第j车间才能接受其他玩具来生产。求加工完毕所有的的n个玩具所需的最小的平均时间。思路:不论使用KM求最小权匹配还是使用最小费用最大流求解,建图还是最重要的。笨啊...想不到啊。。假设有n件玩具都在第j个车间生产,他们所需要的时间分别为T1 + 2*T1 + 3*T1 +..... + n*T1; 则第c个在j上的的所需时间为c*j,我们将每个车间分成n个点,表示第i个可能是第 阅读全文
posted @ 2012-11-01 23:00 E_star 阅读(293) 评论(0) 推荐(0) 编辑
摘要: http://acm.fzu.edu.cn/problem.php?pid=1686题意:给定一个n*m的01矩阵,给出每次可以覆盖的行与列(相当于利用小矩形覆盖大矩形一样),求使用最少的次数(小矩形的个数)将所有的1都覆盖。思路:这里没有要求不能重复覆盖,所以属于重复覆盖的类型。只要把所有出现的1当作列,然后枚举每个可能的小矩形,枚举他所能覆盖的列,建立十字链标。然后套用DLX 重复覆盖模板即可。吐槽一下:这里h()函数减枝时如果是> 就会tle >= 就AC 了。。。无语了,看来等于的结果很多啊。心得:做了几个DLX的题目,感觉这类题目和网络流类似,只要能把模型想出来,建好图, 阅读全文
posted @ 2012-10-30 17:18 E_star 阅读(285) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=229题意:一个国家有n个城市,m个雷达,我们同时操作的雷达数最多为k,给出城市与国家的坐标,求小于等于k的操作下,雷达覆盖的能够覆盖所有城市的最小覆盖半径。思路:城市作为列,雷达作为行,二分枚举雷达的半径+DLX重复覆盖求解。View Code #include <cstdio>#include <cstring>#include <iostream>#include <cmath>using namespace std;// freopen("dat 阅读全文
posted @ 2012-10-29 23:20 E_star 阅读(185) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3372题意:给你一个n*m的大矩形,然后给你p个小矩形,让你从中选出若干小矩形填满这个大矩形,这里保证所选的小矩形不存在相互覆盖。思路:才开始看到大牛的dlx分类里面看了之后,没什么想法,可能就做了一个题的原因把。说是把整个大矩形的面积看n*m的作列,每个小矩形看作行,然后拆出他所能覆盖的列然后问题就转化成了DLX问题了。吐槽以下,这题我交了34遍啊。才开始自己想到了怎么写了就写了一下,中间出现各种错误, i : x1 到 x2 - 1 j: y1 + 1 到 y2 转化为本 阅读全文
posted @ 2012-10-29 18:42 E_star 阅读(304) 评论(0) 推荐(0) 编辑
摘要: #define CL(a,num) memset((a),(num),sizeof(a))#define inf 0x7f7f7f7f#define M 1007#define N 1000007const int head = 0;int u[N],d[N],l[N],r[N],c[N],row[N];int s[M],o[M];int ak,n,m;void init(int m){ int i; for (i = 1; i <= m; ++i){ l[i] = i - 1; r[i] = i + 1; u[i] = d[i] = i;... 阅读全文
posted @ 2012-10-28 18:00 E_star 阅读(329) 评论(0) 推荐(0) 编辑
摘要: http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=10702题意:给你一个n*m的01矩阵,让你选择若干行使这些行中的1能够覆盖所有的列,而且不能出现重复覆盖。输出所选的行。思路:这是跳舞链的模板题目。不多说了。给出个人觉得讲解比较好的链接:http://blog.csdn.net/mu399/article/details/7627736参考代码:http://blog.csdn.net/dooder_daodao/article/details/6654904我的代码:View Code #include < 阅读全文
posted @ 2012-10-28 17:58 E_star 阅读(314) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/231/problem/B题意:给你一个长度为n的序列每个元素的取值为[1,l] 然后进行如下操作,每次将 a[n - 1] - a[n] 替换a[n - 1]使原序列个数减1,最后得到一个数字d。给你长度n,最后得到的数d,和l。找去满足条件的序列。思路:这题真心不好想啊,首先我们能够退出 x1 - (x2 - (x3 - (.....)))得到x1 - x2 + x3 - x4 + x5 -... = d; 所以有(x1 + x2 + x3 ....) - (x2 + x4 + x6 + x8....) = d;这个公式,我想到这 阅读全文
posted @ 2012-10-28 12:21 E_star 阅读(398) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.ru/contest/231/problem/C题意:给你n个数,你每次可以使其中的一个数加1,最多的加1次数为k,可以选择同一个数连续加但必须小于k。求使得小于等于k次加1操作后原序列中出现的相同元素最多的元素的个数,以及这个元素的值。思路:比赛时想了O(n^2)的做法写了一下超时,这是必然,我们首先对其进行从小到达排序然后枚举位置i ,从i - 1到1 枚举查看加到a[i]需要加1的次数直到k剩余个数不满足。这样的O(n^2)显然超时。要怎么优化呢? 开始想了二分枚举到底枚举什么自己糊涂了,没想到。这里看对于个数枚举。当我们枚举到 i 时,在区间[1,i 阅读全文
posted @ 2012-10-28 10:01 E_star 阅读(189) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/2/B题意:给定n*n的一个数字矩阵,求从左上角(1,1)走到右下角(n,n)将每个数字相乘,使得乘机中包含的0最少。要求只能往下走或者往右走。思路:状态转移方程很好看,关键是怎么保证所得乘积所含0个数最少。想一下如何才能使乘积中出现0呢?只有质因子2*5才能出现0,其余的质因子相乘不会出现。所以我们只要保证使得2与5的个数凑出来的10最少即可,即2与5的个数最少即可 我们肯定得到一条路线使得ans = min(2num,5num); ans的值在所有路线里是最小的。即得到了所得答案。开始我同时枚举的路线上的2与 阅读全文
posted @ 2012-10-27 23:31 E_star 阅读(343) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/159/C题意:给你一个字符串s,给出一个数k,k倍的s串组成新串str。然后给出n个操作,每个操作对应着pi,ci意思是将第pi个字符ci从str中删除,求最后得到的字符串。思路:首先我想到的是利用vector里面的erase快速的删除,开一个vc[26]来存取每个字符然后模拟删除过程,才开始自己一维erase的时间复杂度为O(1)如果这样肯定不会超时,结果事与愿违果真TLE了。问了问别人晚会上搜了搜原来erase函数的平均复杂度竟然是O(n)这样固然超时,可是看了看AC的代码里面也有用vector + era 阅读全文
posted @ 2012-10-27 20:20 E_star 阅读(268) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/237/E题意:给定一个目标字符串,然后给你n个字符串,从这n个字符串里面s1,s2,...sn,抽出字符组成目标字符串,每个字符串都对应这最多可以抽出a[i]个字符,抽取每个字符都有一定的费用,抽si里面的字符的话,每个字符需要i的钱数,判断目标字符串是否能够从这n个字符串里面抽出字符组成,若可以输出最小的费用,否则输出-1;思路:最小费用最大流。说实话看到这个题目时,真没网网络流方向想,比赛时时间也不够了,赛后一看tags 显示flows 才豁然开朗。 网流的题目关键还是能够看出如何建图,然后直接套模板即可。 阅读全文
posted @ 2012-10-26 22:05 E_star 阅读(277) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/237A:确实是水题,不过本人脑残,叫了四遍才对,第一遍读错题意些错了,第二边忘了去重定向,第三边去了重定向忘了保存(因为交的文件吗),四边忘掉了break。终于第五边对了。无语了。。粗心啊。。就是统计以下时间相同(同时到达咖啡店的人多少个即可)B:题意:给定一个有n行,每一行有ci个数的矩阵,求如何交换两个数使得矩阵满足a[i][j] > a[i - 1][j] && a[i][j] > a[i - 1][j]。思路:分析可知,如要满足条件我们只要将矩阵转化成一维的数组,使交换后的数组满足递增即可。开两个 阅读全文
posted @ 2012-10-26 22:03 E_star 阅读(233) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 38 下一页