首页 > 其他 > 详细

Codeforces Round #721 (Div. 2)

时间:2021-05-21 09:29:49      阅读:27      评论:0      收藏:0      [点我收藏+]

Codeforces Round #721 (Div. 2)

C. Sequence Pair Weight

题意:给一个数组,求他的所有连续子串中,任取相等的两数的方案之和。

题解:这个题其实,造个全是1的数组乱搞算出来就差不多了。

当计算i的贡献时,我们计算前面所有a[i]的贡献,同时对于每一个包含i的后缀都可以算一次i前面的贡献,所以ans加上map[a[i]]*(n-i+1);

当a[i]在第i个位置时,可为后面的数贡献i个子串,所以每次算完贡献后我们在map[a[i]]中加i

#include<iostream>
#include<map>
using namespace std;
#define ll long long
const ll N=1e5+7;
ll t,n,a[N];
map<ll,ll>ma;
int main(){
    scanf("%lld",&t);
    while(t--){
        scanf("%lld",&n);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
        }
        ma.clear();
        long long ans=0;
        for(int i=1;i<=n;i++){
            ll res=ma[a[i]];
            ans+=res*(n-i+1);
            ma[a[i]]+=i;
        }
        printf("%lld\n",ans);
    }
}

B2. Palindrome Game (hard version)

题意:B1的升级版,给一个01字符串,每次可以两种操作

1,将一个0变成1,花费1;

2,将字符串反转,花费0(要求字符串非回文,且上次操作未反转)

A与B轮流操作,A先手,全1结束,博弈看谁最后花钱最少。

题解:

分情况讨论清楚即可,由简易版我们知道,我们可以与对面下对称位,在最后还有两个0时反转,这样对方就会多花2费。

难版增加了字符串不一定回文的条件,那么其实我只要一开始反转,对方就只能一直填1直到回文,所以对方一定想尽快使字符串回文,那么对方的走法也基本上被我控制了。

对于未回文时,我们一直反转等待最后一步造成回文得到翻转控制权,便就和第一题解法一样了。

同时谈论一下,中间点的值,与0数等于1时,等于2时的特殊样例即可。

#include<iostream>
using namespace std;
const int N=1e3+7;
int t,n;
char s[N];
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		scanf("%s",s+1);
		int cnt=0;
		int sum=0;
		for(int i=1;i<=n;i++){
			if(s[i]==‘0‘)cnt++;
			if(s[i]!=s[n-i+1])sum++;
		}
		sum/=2;
		if(sum==0){
			if(cnt==1){
				printf("BOB\n");
			}
			else if(cnt%2==0){
				printf("BOB\n");
			}
			else{
				printf("ALICE\n");
			}
		}
		else{
			if(cnt==1){
				printf("ALICE\n");
			}
			else{
				if((cnt-sum)%2==0){
					printf("ALICE\n");
				}
				else{
					if(cnt==2){
						printf("DRAW\n");
					}
					else{
						printf("ALICE\n");
					}
				}
			}
		}
	}
}

Codeforces Round #721 (Div. 2)

原文:https://www.cnblogs.com/whitelily/p/14792137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!