上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 38 下一页
摘要: http://poj.org/problem?id=1850以前接触组合数学的东西比较少,以后要训练一些这类的题目了。。http://baike.baidu.com/view/738955.htm利用的是公式是c[i][j] = c[i - 1][j - 1] + c[i][j - 1] 类比到杨辉三角。这道题目就是给字符串标号,给定的字符串要求满足s[i] < s[i + 1] < s[i + 2] ......,如果不满足则输出0,然后是给定一个字符串输出其编号。我们只要求出所有比他小的字符串的个数茫然后加上他本身就得到了他的编号。假设字符串为s,长度为len分两部分求:1:首 阅读全文
posted @ 2012-05-01 11:17 E_star 阅读(298) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1159给定一字符串,问最少插入多少字符能使该字符串变成回文串。只要求出该字符串与其逆串的公共子序列,然后然后用n减去就得结果。这里卡内存,可以将f[5007][5007]定义成short int 型,计算后能险过,所以这里最好采用滚动数组。View Code #include <cstdio>#include <cstring>#include <iostream>#define maxn 5005using namespace std;char s[maxn];int f[2][maxn];int ma 阅读全文
posted @ 2012-04-30 15:17 E_star 阅读(132) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1080discuss 里面的解释已经很经典很明白了。http://poj.org/showmessage?message_id=74842View Code #include <cstdio>#include <cstring>#include <iostream>#define maxn 107using namespace std;int f[5][5] ={ {5,-1,-2,-1,-3}, {-1,5,-3,-2,-4}, {-2,-3,5,-2,-2}, {-1,-2,-2,5,-1}, {-3 阅读全文
posted @ 2012-04-30 10:36 E_star 阅读(130) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1836其实前不久校赛的题目就是这个题目的一个简化版本,http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2403这道题只要求出从左到右,从右到左,以及Ak1<Ak2<Ak3<...<Amid-1<Amid>Amid+1>...>Akm-2>Akm-1>Akm (k1,k2,k3....km均在1到n之间) 严格按照左边递增右边递减的序列长度去最大就好了。这里的题意和SDUT2403差 阅读全文
posted @ 2012-04-29 15:57 E_star 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 二分:返回第一个大于val的数51 3 5 6 96>>951 3 5 7 96>>7int bsearch(int val){ int l = 0, r = n; int mid = 0; while (l <= r){ mid = (l + r)>>1; if (a[mid] > val){ r = mid - 1; } else{ l = mid + 1; } } return a[l];}返回第一个大于等于val的值:int bsearch(i... 阅读全文
posted @ 2012-04-29 14:23 E_star 阅读(359) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1260题意是:给定不同级别不同价值的珍珠,问如果购买所有的珍珠最少花费。每买一种价格的珍珠就要多付10个钱。其中低等的珍珠可以用高等的珍珠进行替代才开始自己想的是对于当前等级i的珍珠要么只买这一等级的珍珠,要么用这一等级的珍珠替换所有比他低级的珍珠以求得购当前(a[1]+a[2]+a[3] +....+a[i])数量珍珠的最少费用,样例过了可是WA后来想了想对于当前状态比他低级的不应定非要用它替换,我们只要最小就可以了,如果这要对于i后面的状态(情况特别多)就不好处理了。最后看了一下discuss有人证明了,只要枚举比i低级的连续的等级用i 阅读全文
posted @ 2012-04-29 13:26 E_star 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 今天的比赛做的很纠结,该反思一下自己为什么做的这么烂了,约瑟夫环的那个问题,反映出自己掌握知识不够全面,只要我们知道那个证明实现起来就很轻松了,可是如果不知道的话就会被卡了。Run Length Encoding这道题题意读的很是晕,迷迷糊糊就把代码完了,自己还出了好几组数据测试都过,一交还是wa,原来自己把题意理解错了,其实这道题的叙述真的很理解的。All Discs Considered这道题没读懂题意,自己猜的是拓扑排序,可是比赛时卡到那几个题了所以就没写,后来自己读了几遍题意,想了想还是不知道该怎么写,最后还是搜了一下解题报告才出来的。。。就看了这几道题。。。1:自己的知识面太狭隘;2 阅读全文
posted @ 2012-04-28 21:59 E_star 阅读(214) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1276才开始自己写了一下转换成01背包的做法,直接tle。。计算一下就知道会tle了。然后写了一下二进制思想的方法,终于A了。。。背包好久没看了,自己还是不是很扎实啊View Code #include <iostream>#include <cstdio>#include <cstring>#define maxn 100007#define N 11using namespace std;int f[maxn];int c[N],b[N];int V,n,m;void zb(int c,int w,i 阅读全文
posted @ 2012-04-26 23:22 E_star 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 今天下午航电的比赛,我没注意,下午两点多才来实验室。只是做了几道水题。4229就是给定那个a,b,c,d四个非负整数数,分别用|a-b| |b-c| |c-d| |d-a| 来代替,计算直到 a= = b == c == d为止求出一共需要多少步,这题幸亏给出了It turns out that in all cases, the sequence converges very quickly. In fact, it can be shown that if all four integers are less than 2^n, then it will take no more than 阅读全文
posted @ 2012-04-25 20:47 E_star 阅读(313) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4109给定N个指令,其中有部分指令存在先后时间上的顺序,给定m个,x, y, z 即y必须在x执行完z秒后才执行,求 最少的时间。首先根据拓扑排序找出入度为0点,处理,而对于有限制的一些点来说,dp[i] = max(dp[i],dp[j] + w) j 是i的临接点,w是i与j 的时间差。边表不是很熟,同时也练习了一下边表。。View Code #include <cstdio>#include <cstring>#include <iostream>#include & 阅读全文
posted @ 2012-04-23 21:43 E_star 阅读(250) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1463对于树形DP不大来感啊,才开始做的时候考虑成覆盖全部点了,致使我拓扑做了,WA了好几次。感觉是树形DP好像以前做过类似的题目可是就是想不出来怎么做了,看来还是不扎实。最后搜了一下解题报告,对于每一点只有放与不放两种状态,如果这一点放了士兵那么他的临接点可以放也可以不放,如果这一点没有放那么他的临接点一定放了。由此得出dp[i][0]+= dp[j][1] dp[i][1] = min(dp[j][0],dp[j][1])(j属于i的临接点) dp[i][0] 表示i点不放士兵 dp[i][1] 表示i 点放士兵。。随便由一点出发,.. 阅读全文
posted @ 2012-04-23 20:51 E_star 阅读(192) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2401话说GSB 出的这个题确实不大好想,给定题意不说了。才开始我们想的是从左到右,从上往下走一边,找相邻连点两重循环找最大面积,敲出来一交WA,郁闷,才开始我们都认为这个办法对,想了很长时间,到最后ZC出了各情况直接给否定了,主要是我们没有考虑上下界问题。同样只要考虑好上下界,还是按那个思路左右上下走一边,最后求出最大值即可。View Code #include <cstdio>#include <cstring>#i 阅读全文
posted @ 2012-04-23 20:28 E_star 阅读(423) 评论(0) 推荐(0) 编辑
摘要: rating继续跌。。。。。桑心啊!!http://codeforces.com/contest/181A:就是给一个矩阵,里面有四个点这四个点能够组成矩形,给定三个点求第四各点的位置。这里四点形成矩形的边与给定矩形的边平行。所以只要简单的模拟找出来就行。如果不平行的话就麻烦了。* ** ?不管怎样都是这样的形式。。View CodeB:给定N个点,求满足三点共线且中间一点位于其余两点的中点的所有三点组合的个数。ABC ,B位于AC的中点。才开始自己写了个((n*(n-1))/2)*(logn)的,就是两点组合后在二分查找是否存在,可是老是wa,郁闷了,于是就换了算法。同样首先排序,1... 阅读全文
posted @ 2012-04-21 10:31 E_star 阅读(264) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1837题意:给你一个类似于天平的秤,秤有左右臂膀。左右臂有c个挂钩,给定g个重物,要求把所有重物都挂在钩子上,并且是天平平衡。求最多可能得到的数。左边力乘以力矩 = 右边力乘以力矩挂在左边的得到负数,挂在右边得到正数,只要我们的到的数为0就表明此时天平平衡。由于数组下表不能为负,所以我们要加上一个偏移量b = 20*15*25 = 7500 所有重物都挂到一端取最大重量则我们得到的结果dp[g][0] 就等于dp[g][7500] 了(加上偏移量)dp[i][k + val[i]*pos[j] + b] += dp[i - 1][k + b 阅读全文
posted @ 2012-04-20 21:21 E_star 阅读(386) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2531就是和原来的奶牛翻碗问题,翻黑白棋问题,开门问题属于一类题目,对于每一点只有两种状态,要么属于A要么属于DFS枚举出所有的状态即可。。才开始自己按自己的习惯写的DFS1469ms最后看了看别人的优化到了375ms。。。就是在处理求和时的优化了。。我的代码:View Code #include <iostream>#include <cstring>#include <cstdio>#define maxn 23using namespace std;bool vt[maxn];int n,ans;i 阅读全文
posted @ 2012-04-19 20:29 E_star 阅读(174) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3087刚看到题目的时候给我整蒙了,BFS怎么做啊?这不就是模拟一下洗牌的过程,如果遇到目标字符串就输出步数,如果回到原始串,就说明到不了目标串。View Code #include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;char aim[207];//目标串int n;struct node{ char s1[107]; char s2[107]; int len;};b 阅读全文
posted @ 2012-04-19 15:41 E_star 阅读(157) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3126题意给定两个四位素数s,e,求出经过最少的步数由s得到e,每一步的要求是每次只能改变四位数中一位数,并且改变后的数要求也要是素数。首先求出1000到9999所有的素数,然后有s到e进行bfs,知道遇到e结束。刚开始自己写完代码之后,测试了一下数据,吓死我了,很慢。心想怎么优化呢。想了很长时间,感觉应该能过啊,不耐烦了还是提交了一下。结果1Y。。。囧啊!!不知道威慑呢么机器上运行的很慢。。看了一下300多秒。View Code #include <iostream>#include <cstdio>#includ 阅读全文
posted @ 2012-04-18 21:43 E_star 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 一:常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int: 4个字节 unsigned int : 4个字节 float: 4个字节 double: 8个字节 long: 4个字节 long long: 8个字节 uns... 阅读全文
posted @ 2012-04-17 21:17 E_star 阅读(672) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1426首先补充一下基础知识:一:常用数据类型对应字节数 可用如sizeof(char),sizeof(char*)等得出 32位编译器: char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short int : 2个字节 int:4个字节 unsigned int : 4个字节 float:4个字节 double:8个字节 long:4个字节 long long:8个字节 unsigned long:4个字节 64位编译器: char :1个字节 c 阅读全文
posted @ 2012-04-17 21:14 E_star 阅读(168) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3278就是农场主在X轴上找牛,给定牛的坐标,扭不动,农场主可以 +1 -1 *2 的方式前进,求最少的步数使其找到牛。分三种情况走,直到遇到牛即可,同时为了避免不断的重复于某一点,记录到达该点的最短距离。View Code #include <iostream>#include <cstring>#include <cstdio>#include <queue>#define maxn 100007#define inf 9999999using namespace std;int ans,s 阅读全文
posted @ 2012-04-16 10:55 E_star 阅读(207) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 38 下一页