摘要:
#include int main(){ int n,m; scanf("%d",&m); while(scanf("%d",&n)!=EOF) { int x,ans; ans=0; for(int i=1; i<=n; i++) { scanf("%d",&x); ans+=x; } if (m==1) printf("%d\n",ans); else printf("%d\n\n",ans); m--; } return 0;} 阅读全文
摘要:
#include #include int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) if (a+b) printf("%d\n\n",a+b); return 0;} 阅读全文
摘要:
#include int main(){ int n; while(scanf("%d",&n)!=EOF) { int x,ans; ans=0; for(int i=1; i<=n; i++) { scanf("%d",&x); ans+=x; } printf("%d\n",ans); } return 0;} 阅读全文
摘要:
#include int main(){ int n,m,ans,x; scanf("%d",&m); for(int i=1; i<=m; i++) { ans=0; scanf("%d",&n); for(int j=1; j<=n; j++) { scanf("%d",&x); ans+=x; } printf("%d\n",ans); } return 0;} 阅读全文
摘要:
#include int main(){ int n; while(scanf("%d",&n)!=EOF) if (n) { int x,ans; ans=0; for(int i=1; i<=n; i++) { scanf("%d",&x); ans+=x; } printf("%d\n",ans); } return 0;} 阅读全文
摘要:
#include int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) if (a+b) printf("%d\n",a+b); return 0;} 阅读全文
摘要:
#include int main(){ int n,a,b; scanf("%d",&n); for (int i=1; i<=n; i++) { scanf("%d%d",&a,&b); printf("%d\n",a+b); } return 0;} 阅读全文
摘要:
#include int main() { int a,b; while(scanf("%d%d",&a,&b)!=EOF) printf("%d\n",a+b); return 0;} 阅读全文
摘要:
还没学过导数,不会做……#include #include using namespace std;//先求导函数,可知f'(x)=g'(x)+y,g'(x)为递增函数,//1)若导函数最大值小于0,即g'(100)+y0,则原函数在区间内单调递增,最小值为f(0).//3)若导函数有正有负,因导函数单调递增,所以必然从负值开始穿过x轴,导函数由负变正,原函数先减后增,其0点即原函数的最小值点.//(或求二阶导数,在区间内,f''(x)>0,则原函数为凹函数,有最小值点.否则,为凸函数,有最大值点)double f(double x,int 阅读全文
摘要:
题解:二分求解#include #include using namespace std;double f(double x){ return(8*pow(x,4)+7*pow(x,3)+2*pow(x,2)+3*x+6);}int main(){ int t; double l,r,mid,yl,yr,y,y1; scanf("%d", &t); while(t--) { l=0; r=100; scanf("%lf",&y1); yl=f(l)-y1; yr=f(... 阅读全文
摘要:
题目大意:现在给出商品,有三个参数,记为pi,qi,vi,vi是商品的在你心里价值,pi是商品的价格,qi是你要买商品的时候至少需要的钱然后求可得的最大价值。单词积累:Merchants 商人 typical 标志性的题解:首先我们考虑商品A,B,其pi,qi,vi记为pA,qA,vA,pB,qB,vB,我们可以发现,有些买东西的顺序也会决定你可以得到的最大价值,那么怎么才可以使顺序无影响呢?可以这样想,我们如果A,B都要买,先买A,那么需要的资金至少为pA+qB,先买B,那么需要的资金至少为pB+qA,那么想要资金越少,要先买qi-pi大的商品,所以排序一下再背包就可以了。#include 阅读全文
摘要:
题解:贪心思想,去除一个最大值,背包容量减5,直接01背包即可。#include #include #include using namespace std; int main() { int n,m; while(scanf("%d",&n),n!=0){ int a[1005]; memset(a,0,sizeof(a)); for(int i=1;i=a[i];j--) if(f[j]<f[j-a[i]]+a[i]) ... 阅读全文
摘要:
题解:显然的双重背包。#include int f[105][1005],v[105],w[105];int main(){ int t,n,m,l; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&l); for(int i=1;i=1;j--) for(int k=l;k>=w[i];k--) if (f[j-1][k-w[i]]+v[i]>f[j][k]) f[j][k]=f[j-1][k-w[i]]+v[i]; if (f[m]... 阅读全文
摘要:
题目大意:有六堆石头,第i堆的价值为i,读入数据表示该堆石头的个数,现在要求得出是否可以分为价值相同的两堆。题解:直接将石子数相加,如果为奇数则显然不可分,然后就是01背包的二进制拆分问题了。#include int main(){ int a[7],k,cnt=1; bool f[120000]; while(true) { int sum=0; for(int i=1;i 0;i--) f[i] = false; f[0] = true; for(int i=1;i=temp;j--) ... 阅读全文