上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页
摘要: 感觉这个月我们队三个都成长了不少,5个省赛队伍之间第一场省赛训练赛:倒数第一,那时候心里很不是滋味,回去后自我反省了一夜:做题太过浮躁,花费了太多的精力说一些发泄的气话,没有独立的思考第二场省赛训练赛:倒数第二,终于有所进步,但是还是太浮躁了,不够细心,第一题水题居然交错了语言,然后原本的倒数第3的位置飞走了第三场省赛训练赛:倒数第三,也是正数第三,前面的切水功夫终于见到了成效,WA的几率下降了,但是打字速度还不够快,看来我得进行键盘特训了。。。嗯,keep going~ 阅读全文
posted @ 2013-05-01 12:08 小仪在努力~ 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 抄袭:题目分析:s[i]表示1固定,剩余序列的排列方法由于第一个只能是1,则第二个数只能是2,3当第二个数是2时,则相当于是对2-n的排列(看作2固定剩余序列的排列方法),相当于对1-(n-1)的排列,即s[n-1];当第二个数是3时,第三个数只能是2,4,5此时,当第三个数为2时,则是对3-n的排列,相当于对1-(n-3)的排列,即s[n-3] 当第三个数为4时,此时,第四个数只能是2,除了n等于4时,对于n大于4的排列,都不符合要求, 而n为4时,与第三个数为5时的排列相同,所以, 可认为第三个数为4时不符合要求, 当第三个数为5时,只有一种情况,1,3,5,6,7,9,……,... 阅读全文
posted @ 2013-05-01 11:35 小仪在努力~ 阅读(156) 评论(0) 推荐(0) 编辑
摘要: /*状态转移方程:re[i][j]=max(re[i-1][j],re[i][j-1],re[i-1][j-1]+(a[i]==b[j]))re[i][j]:长度为i的a串和长度为j的b串的公共最长子序列长度*/#define maxn 1006int re[maxn][maxn];int Max(int a,int b,int c){ if(a<b) a=b; if(a<c) a=c; return a;} int main(){ int t,i,j; char a[maxn],b[maxn]; scanf("%d... 阅读全文
posted @ 2013-04-30 22:44 小仪在努力~ 阅读(160) 评论(0) 推荐(0) 编辑
摘要: dp的思想,从前往后遍历字符串,更新不同长度的递增子序列的最小字符#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;#define maxn 100006int a[maxn],b[maxn];int main(){ int n,i; while(~scanf("%d",&n)) { for(i=0;i&l 阅读全文
posted @ 2013-04-30 22:18 小仪在努力~ 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 传统写法:string str; int count=0; cin>>str; int a[200]; a[0]=-999; //必须赋不属于str[i]的值 for(int i=0;i<str.length();++i) for(int j=count;j>=0;j--) //一个一个遍历维护a[j]的最小值 if((int)str[i]>a[j]) { a[j+1]=str[i]; ... 阅读全文
posted @ 2013-04-30 21:54 小仪在努力~ 阅读(180) 评论(0) 推荐(0) 编辑
摘要: dp的思想,从前往后遍历字符串,更新不同长度的递增子序列的最小字符二分的飘逸写法:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;int main(){ string a; int t,i,j; cin>>t; while(t--) { cin>>a; char b[10005]; //b[i]为了a字符串存 阅读全文
posted @ 2013-04-30 21:45 小仪在努力~ 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 需要优化的01背包:#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;int dp[100005];int main(){ int n,i,j,v,tv,w[30]; while(~scanf("%d",&n)) { for(i=0,v=0;i<n;++i) { scanf("%d" 阅读全文
posted @ 2013-04-30 19:51 小仪在努力~ 阅读(281) 评论(0) 推荐(0) 编辑
摘要: dp[i]:表示i长度有多少个符合的串1、i位置为0,则dp[i-1]都符合2、i位置为1,则i-1位置只能填0,则dp[i-2]都符合所以状态转移方程:dp[i]=dp[i-1]+dp[i-2];#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;int main(){ int i,n,t,dp[45]={0,0,3,5}; for( 阅读全文
posted @ 2013-04-30 14:29 小仪在努力~ 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 首先,我们考虑对于某个V容量,它能装下的苹果为1,2,3,但是装入的顺序无关紧要。然后我们模拟一下:对于某个苹果,能装下它的v更新dp数组#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>#include<string>using namespace std;struct apple{ int c,w;}a[1005];int dp[1005];int main(){ int v,n,i,j; while 阅读全文
posted @ 2013-04-30 13:41 小仪在努力~ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: #include<cstdio>#include<iostream>#include<cstring>using namespace std;int dog[1005][12][12]; //dog[i][j][k] i表示时间,j表示横坐标,k表示纵坐标int g[1005][12][12];int m(int a,int b,int c,int d,int e){ if(a<b) a=b; if(a<c) a=c; if(a<d) a=d; if(a<e) a=e; return a;}int main(... 阅读全文
posted @ 2013-04-30 13:30 小仪在努力~ 阅读(128) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 14 下一页