Codeforces Round #721 (Div. 2)

Posted ccsu_madoka

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #721 (Div. 2)相关的知识,希望对你有一定的参考价值。

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)的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #721 (Div. 2) Codeforces-1527

codeforces round#721c

codeforces Round 721 (Div 2)

Codeforces Round #721 (Div. 2)

C. Sequence Pair Weight——Codeforces Round #721 (Div. 2)

Codeforces Round #721 (Div. 2) C. Sequence Pair Weight(计算贡献/STL)