2021 Shanghai I,K
I - Steadily Growing Steam
题目大意
有张牌,每张牌有价值和点数,现在你能最多使张牌的点数乘,然后从中取出若干张牌,分成两组,使得两组的点数和相同,问最大的价值是多少。
思路
首先可以想到背包,我们定义为取到第张牌时,左边的牌堆点数和为,右边牌堆的点数和为,且亦有张牌的点数被乘了的情况的最大价值,然后发现这样的数组是开不下的,所以我们可以去掉一维,就变成了,这样就刚好能开下,不过前面的也可以用滚动数组滚掉,然后就轻松了。
代码
#include<bits/stdc++.h> using namespace std; long long val[105]; int t[105]; long long dp[105][5205][105]; long long ans=0; int main() { int n,k; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) { scanf("%lld%d",&val[i],&t[i]); } for(int i=1;i<=n;i++) { for(int j=0;j<=5200;j++) { for(int l=0;l<=k;l++) { if(dp[i-1][j][l]) { dp[i][j+t[i]][l]=max(dp[i][j+t[i]][l],dp[i-1][j][l]+val[i]); dp[i][j-t[i]][l]=max(dp[i][j-t[i]][l],dp[i-1][j][l]+val[i]); if(l<k)dp[i][j+2*t[i]][l+1]=max(dp[i][j+2*t[i]][l+1],dp[i-1][j][l]+val[i]); if(l<k)dp[i][j-2*t[i]][l+1]=max(dp[i][j-2*t[i]][l+1],dp[i-1][j][l]+val[i]); dp[i][j][l]=max(dp[i][j][l],dp[i-1][j][l]); } } } dp[i][2600+t[i]][0]=max(val[i],dp[i][2600+t[i]][0]); dp[i][2600-t[i]][0]=max(val[i],dp[i][2600-t[i]][0]); dp[i][2600+2*t[i]][1]=max(val[i],dp[i][2600+2*t[i]][1]); dp[i][2600-2*t[i]][1]=max(val[i],dp[i][2600-2*t[i]][1]); } for(int i=0;i<=k;i++)ans=max(ans,dp[n][2600][i]); printf("%lld\n",ans); return 0; } /* 4 1 10 1 -5 3 5 1 6 1 */
K - Circle of Life
题目大意
有一条个点的链,每个点最多只能放,每秒钟每个都会消失且它的左边和右边都会出现一个,两个相撞后就会消逝,问能否构造出一种初始的放法使得在的时间之内,这条链会变回原来的样子。
思路
有一个统一的构造方法,当长度为的时候,,当长度为的时候,,在最后加上也是不影响的,所以除了之外的所有数都是可以被这样构造出来的,然后是没有办法构造的,所以这道题就做完了。
代码
#include<bits/stdc++.h> using namespace std; int main() { int n; scanf("%d",&n); int a=0,b=0,c=0; if(n==3)printf("Unlucky\n"); else { if(n&1){b++;n-=5;} a=n/4; c=(n%4==2); for(int i=1;i<=a;i++)printf("1001"); for(int i=1;i<=b;i++)printf("10001"); for(int i=1;i<=c;i++)printf("10"); printf("\n"); } return 0; }
__EOF__

本文作者:Jerry-Black
本文链接:https://www.cnblogs.com/Jerry-Black/p/16077162.html
关于博主:小蒟蒻一只( ̄^ ̄)ゞ
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
本文链接:https://www.cnblogs.com/Jerry-Black/p/16077162.html
关于博主:小蒟蒻一只( ̄^ ̄)ゞ
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
分类:
XCPC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!