hrbust 1788
摘要:按照开始时间做排序,不断更新在他之前的最大值,借此得出当前数据结束时间所能等到的最大值。 1 #include 2 #include 3 #include 4 using namespace std; 5 struct po 6 { 7 int s,e,p; 8 } a[100010]; 9 int cmp(po a,po b)10 {11 return a.smaxd)24 maxd=a[i].e;25 }26 sort(a,a+n,cmp);27 memset(maxsum,0,sizeof(maxsu...
阅读全文
posted @
2013-07-29 20:21
Ac_国士无双
阅读(589)
推荐(0)
Uva10066
摘要:最长公共子序列 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n,m,a1[105],a2[105],a[105][105],count=0; 8 while(scanf("%d%d",&n,&m)!=EOF) 9 {10 count++;11 if(n==0&&m==0)12 break;13 for(int i=0;i<n;i++)14 scanf("%d",&a1[i]);1...
阅读全文
posted @
2013-07-19 14:24
Ac_国士无双
阅读(187)
推荐(0)
UVa10131
摘要:题不算难,记录路径的时候有点麻烦,需要去判断在相等的时候不用更新,然后搜回去就行了。 1 #include 2 #include 3 #include 4 using namespace std; 5 struct ele 6 { 7 int w; 8 int s; 9 int num;10 } el[1050];11 int cmp(ele a,ele b)12 {13 return a.wel[k].s)30 d[j+1][k]=max(d[j][j]+1,d[j][k]);31 else d[j+1][k]=...
阅读全文
posted @
2013-07-19 11:26
Ac_国士无双
阅读(209)
推荐(0)
UVa116
摘要:这道题做了好久,题并不难,一开始的思路,和做法都是对的。但是要求最小字典序必须从右向左求,这样找最小的时候可以从左向右,保证最小字典序。以后做题特别要记住,越是情况多的时候越要总结归纳,最小样例,最大样例都要试一试,保证输出正确。 1 #include 2 #include 3 int main() 4 { 5 int m,n,mind,i,j,t,a[20][200],d[20][200],s[20][200]; 6 while(scanf("%d%d",&m,&n)!=EOF) 7 { 8 memset(d,0,sizeof(d)); 9 ...
阅读全文
posted @
2013-07-18 17:36
Ac_国士无双
阅读(289)
推荐(0)
UVa10003
摘要:1 #include 2 #include 3 int main() 4 { 5 int m[100][100],l,n,a[100],c[100],i,j,r,sum; 6 while(scanf("%d",&l)!=EOF&&l) 7 { 8 scanf("%d",&n); 9 for(i=0;i<n;i++)10 scanf("%d",&c[i]);11 c[n]=l;a[0]=c[0];12 for(i=1;i<=n;i++)13 a[i]=c[i]-c[i-1];...
阅读全文
posted @
2013-07-16 17:21
Ac_国士无双
阅读(178)
推荐(0)
UVa10405
摘要:和UVa111差不多,但在区分前后顺序的时候,用到了UVa111那题从别人的代码那里看来的方法,让个数叠加,最后d[len1][len2]就是最终结果。 1 #include 2 #include 3 #include 4 using namespace std; 5 int d[2000][2000]; 6 int main() 7 { 8 char s1[2000],s2[2000]; 9 int i,j,len1,len2,maxd;10 while(gets(s1))11 {12 gets(s2);13 len1=strl...
阅读全文
posted @
2013-07-10 18:28
Ac_国士无双
阅读(150)
推荐(0)
UVa111
摘要:1 #include 2 #include 3 int main() 4 { 5 int a[50],b[50],c[50],d[50][50],i,j,n,k,t,maxd; 6 scanf("%d",&n); 7 for(i=0;ib[k-1]&&d[k-1][j]<d[k-1][k-1]+1)33 d[k][j]=d[k-1][k-1]+1;34 else35 d[k][j]=d[k-1][j];36 if(maxd<d[k][j])3...
阅读全文
posted @
2013-07-07 12:32
Ac_国士无双
阅读(194)
推荐(0)