大佬来看看。

P1489 猫狗大战

我似乎就70 @[Little_AC_Prince](/space/show?uid=18993)
by REFLAME_ASH @ 2018-10-05 21:42:42


@[Little_AC_Prince](/space/show?uid=18993) 你连你的状态是啥都不说,我们怎么给你看
by ___I_AK_IOI @ 2018-10-05 21:43:04


我是按前者写的
by REFLAME_ASH @ 2018-10-05 21:45:11


@[白哥小葱](/space/show?uid=54520) 枚举i,即前i个兵,f[j][k]表示和为j共选了k个兵的方案是否可行。
by 以墨 @ 2018-10-05 21:51:32


@[Little_AC_Prince](/space/show?uid=18993) 题目中讲了,两队人数不能相差超过1
by REFLAME_ASH @ 2018-10-05 21:52:41


@[dimension_missing](/space/show?uid=36882) 我也不太确定到底怎么错的。YGP说要往后退的,可能是玄学。
by 以墨 @ 2018-10-05 21:52:56


另外,对于你的AC代码,我提供一组hack数据 ``` 3 3 3 7 ``` 你程序输出的是 3 10 应该是 6 7
by REFLAME_ASH @ 2018-10-05 21:55:03


@[dimension_missing](/space/show?uid=36882) ```cpp #include<cstdio> using namespace std; const int N=207; int f[N<<6][N],n,su,a[N]; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]),su+=a[i]; f[0][0]=1; for(int i=1;i<=n;i++) for(int j=su>>1;j>=a[i];j--) for(int k=i;k>=1;k--) f[j][k]=f[j-a[i]][k-1]|f[j][k]; for(int j=su>>1;j>=0;j--) if(f[j][n>>1]){ printf("%d %d\n",j,su-j); return 0; } return 0; } ``` 我发现第一份改了个输出也A了......
by 以墨 @ 2018-10-05 21:55:09


@[dimension_missing](/space/show?uid=36882) 呃呃呃。数据水炸了。
by 以墨 @ 2018-10-05 21:56:22


我现在还是70
by REFLAME_ASH @ 2018-10-05 21:57:15


| 下一页