查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!
描述:最宗子序列,不过需要注意的是小乌龟的分量会顺次加在下层的小乌龟身上,所以越往下,小乌龟所承受的分量越大 #include <cstdio> #include <cstdlib> #include <cstring> int v[5610][2],arr[5610]; int cmp(const void *p1,const void *p2) { int c = ((int *)p1)[1] - ((int *)p2)[1]; if(c!=0) return c; return ((int *)p1)[0] - ((int *)p2)[0]; } int max(int x,int y) { return x>y?x:y; } int main() { // freopen("a.txt","r",stdin); int len=0,sum=0; while(scanf("%d%d",&v[len][0],&v[len][1])!=EOF) len++; qsort(v,len,sizeof(v[0]),cmp); memset(arr,0x7f,sizeof(arr)); arr[0]=0; for(int i=0; i<len; i++) for(int j=sum; j>=0; j--) if(v[i][1]>=arr[j]+v[i][0]&&arr[j+1]>arr[j]+v[i][0]) { arr[j+1]=arr[j]+v[i][0]; sum=max(sum,j+1); } printf("%d\n",sum); return 0; }
文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。