视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
CodeforcesRound#243(Div.1)_html/css
2020-11-27 15:52:56 责编:小采
文档


这场CF真是逗了。。

因为早上7点起的,所以到做CF的时候已经17个小时没有休息了,再加上中午5小时的比赛。

头脑很不清晰。做第一个题的时候差点读成求最大字段和了。然后发现是水体,迅速A掉。

然后开始看了B题,第一遍没有看懂,此时大脑已经看不下去了。然后突然某个群说D是水题。

我去看了一下D,我去,D的题意好简单啊。。于是,冥思苦想中。。。一直到快要1点

的时候,还是没有结果。。此时我感觉不行了。要放弃D,于是,又去看B。仔细读了读题目,

才发现,B题才是真正的水题。一阵郁闷啊。

A题:

可以暴力枚举区间,然后枚举去掉几个数。

去数的时候肯定是优先去掉最小的数,然后拿进来最大的。

#include#include#include#include#includeusing namespace std;#define maxn 220000#define mem(a,b) memset(a,b,sizeof(a))int a[222];vectorvec;vectorvecc;int main(){ int n,m,ans,i,j,k; while(~scanf("%d%d",&n,&m)) { for(i=1;i<=n;i++)scanf("%d",&a[i]); ans=a[1]; for(i=1;i<=n;i++) { int p=0; for(j=i;j<=n;j++) { vec.clear(); vecc.clear(); p=0; for(k=i;k<=j;k++) { vec.push_back(a[k]); p+=a[k]; } for(k=1;k<=n;k++) { if(kj)vecc.push_back(a[k]); } sort(vec.begin(),vec.end()); sort(vecc.begin(),vecc.end()); int len=vec.size(); ans=max(ans,p); for(k=1;k<=m&&k<=len&&k<=vecc.size();k++) { p-=vec[k-1]; p+=vecc[vecc.size()-k]; ans=max(ans,p); } } } cout< 
B题:

这道题目仔细研究下你就会发现,如果想变成合法的,那么任意两行或者两列都是相同或者相反的状态。

那么如果m小与10的话,咱们就枚举第一行的状态。

如果m大于10的话,咱们就枚举哪一列没有被改变。

#include #include #include #include #include #include #includeusing namespace std;#define N 251000#define maxn 110000#define LL __intint maps[220][220];int c[220];int r[220];int dp[220];int num[220][2];int number_1(int x){ x=(x& 0x55555555)+((x>>1)& 0x55555555); x=(x& 0x33333333)+((x>>2)& 0x33333333); x=(x& 0x0F0F0F0F)+((x>>4)& 0x0F0F0F0F); x=(x& 0x00FF00FF)+((x>>8)& 0x00FF00FF); x=(x& 0x0000FFFF)+((x>>16)& 0x0000FFFF); return x;}void dos(int n,int m,int ks){ int ans=99999; int i,j,k; for(k=0;k<(1<下载本文

显示全文
专题