社区讨论
卡时间过的一个代码
P2340[USACO03FALL] Cow Exhibition G参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mdk5hx6d
- 此快照首次捕获于
- 2025/07/26 19:12 7 个月前
- 此快照最后确认于
- 2025/07/26 19:18 7 个月前
没平移价值,map卡过去了
CPP#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<map>
#include<vector>
typedef long long ll;
using namespace std;
const ll N = 410;
const ll MOD = 998244353;
int cowi[N],cowe[N];
int fi2[800010];
int main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int n;
cin>>n;
map<int,int>dp1;
dp1[0]=0;
for(int i=1;i<=n;i++)
{
cin>>cowi[i]>>cowe[i];
}
for(int i=1;i<=n;i++)
{
map<int,int>dp2,fi1;
for(auto it:dp1)
{
int I=it.first+cowi[i],E=it.second+cowe[i];
if(fi1[I]==0)
{
fi1[I]=1;
dp2[I]=E;
}
else dp2[I]=max(E,dp2[I]);
}
for(auto it:dp2)
{
if(fi2[it.first+400000]==0)
{
dp1[it.first]=it.second;
fi2[it.first+400000]=1;
}
else dp1[it.first]=max(it.second,dp1[it.first]);
}
}
int ans=0;
for(auto it:dp1)
{
if(it.first>=0&&it.second>=0) ans=max(it.first+it.second,ans);
}
cout<<ans;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...