首页 > 其他分享 >Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 (A,B)(C补)

Codeforces Round #819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 (A,B)(C补)

时间:2022-09-07 15:55:07浏览次数:105  
标签:Code Contest int cin 偶数 ans Div minv

这场打的稀烂。。。

A. Mainak and Array

题意:将数组中某段子序列翻转一次,求a[n] - a[1]最大的值。

思路:有三种情况:
第一种,将最小的数翻转到第一位,然后用原来的a[n]减去反转后的a[1]。
第二种,将最大的数翻转到最后一位,用反转后的a[n]减去原来的a[1]。
第三种,整体翻转,使最大和最小两个数在a[n]和a[1]的位置,这就需要他们相邻。

代码:

void solve()
{	
	int n;
	cin >> n;
	int maxv = -INF, minv = INF;
	int ans = 0;
	for(int i = 1; i <= n; i ++)
	{
		cin >> a[i];
		maxv = max(maxv, a[i]);
		minv = min(minv, a[i]);
	}
	
	for(int i = 1; i < n;i ++)
	{
		ans = max(ans, a[i] - a[i + 1]);
	}
	ans = max(ans, max(maxv - a[1], a[n] - minv));
	
	cout << ans << endl;
}

B. Mainak and Interesting Sequence

题意:给出数组的位数n和数组元素总和m,求是否存在一个数组使得每个元素,在数组中严格小于它的数的异或值为0。

思路:我的思路就是均分,这样的话就只需要看位数就可以判断是否异或为0。首先将m均分给n个元素,多的值后面补上即可。
如果没有剩下的数,说明可以均分,那么绝对满足条件,输出即可。
如果有剩下的数,如果n - 1是偶数,那么说明可以在最后一位加上剩下的数,那么对于这位数而言,比他小的数异或为0。
如果n - 1不是偶数,设剩下的数为t,将t均分到t个数上,观察n - t是否为偶数,不为偶数则不满足条件,为偶数则满足条件。

代码:

void solve()
{	
	int n, m;
	cin >> n >> m;
	vector<int> v(n, m / n);
	if(m < n)                                //如果有数为0,则NO
	{
		cout << "No" <<endl;
		return ;
	}
	int t = m - (m / n * n);
	if(t == 0)
	{
		cout << "Yes" << endl;
		for(int i = 0; i < n; i++) cout << v[i] << " \n"[i == n - 1];
		return ;
	}
	
	if((n - 1) % 2 == 0)
	{
		cout << "Yes" << endl;
		for(int i = 0; i < n; i ++) 
		{
			if(i == 0) v[i] += t;
			cout << v[i] << " \n"[i == n - 1];
		}
		return ;
	}
	
	if((n - t) % 2 == 1)
	{
		cout << "No" << endl;
		return ;
	}
	
	
	cout << "Yes" <<endl;
	for(int i = 0; i < n; i ++)
	{
		if(i < t) v[i] ++;
		cout << v[i] << " \n"[i == n - 1];
	}
 
}

C. Jatayu's Balanced Bracket Sequence

题意:比赛的时候没读懂。后来看的题解。这位大佬写的不错

代码:

void solve()
{	
	int n;
	cin >> n;
	string s;
	cin >> s;
	n = 2 * n;
	int res = 1;
	for(int i = 0; i < n; i ++)
	{
		if(s[i] == '(') continue;
		int j = i;
		while(j + 1 < n && s[j + 1] == ')') j ++;
		res += j - i;
		i = j;
	}
	cout << res << endl;
}

标签:Code,Contest,int,cin,偶数,ans,Div,minv
From: https://www.cnblogs.com/lbzbk/p/16665757.html

相关文章

  • python中divmod是什么意思?
    python中divmod()是一个内置函数。pythondivmod()函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a//b,a%b)。在python2.3版本之前不允许处理复数......
  • 跨平台vscode教程
    一、VS与VSCODE区别什么是vs?VS全称MicrosoftVisualStudio,是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大......
  • 字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案
    作者:李卓立仲凯宁背景介绍在《字节跳动DanceCC工具链系列之Swift调试性能的优化方案》[1]一文中,我们介绍了如何使用自定义的工具链,来针对性优化调试器的性能,解决大......
  • npm ERR! code E401 npm ERR! Unable to authenticate, need: Basic realm="Artifacto
    npminstall后报了下面这个错误:npmERR!codeE401npmERR!Unabletoauthenticate,need:Basicrealm="ArtifactoryRealm"如图:npmconfiglist命令找到.npmrc位......
  • The 2021 China Collegiate Programming Contest (Harbin)
    比赛链接:https://codeforces.com/gym/103447B.MagicalSubsequence题意:给定一个序列\(A\),选择一个长为偶数的子序列\(B\),使得\(B_1+B_2=B_3+B_4...\),问这个......
  • idea 查看类的字节码信息( jclassLib Bytecode viewer插件、javap tools)
    idea查看类的字节码信息第一种方式:IntelliJIDEA--Preferences---Plugins安装插件:jclassLibBytecodeviewer第二种方式:IntelliJIDEA--Preferenc......
  • leetcode 101. Symmetric Tree 对称二叉树(简单)
    一、题目大意给你一个二叉树的根节点root,检查它是否轴对称。示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false......
  • leetcode 1385. 两个数组间的距离值
    给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 ......
  • 使用 Codex AI 逐步创建 Wordle
    使用CodexAI逐步创建Wordle我转录了使用自然语言创建工作单词的说明TL;DR:如何在不编程的情况下创建Wordle几个月前,我观看了一段关于使用AI创建Wordle的视频......
  • VScode 突然无法连接
    大量输出下面的内容:>Waitingforserverlog...解决:把服务器端的/home/自己的用户名/.vscode-server删除即可查看全部文件:ll-arm-rf.vscode-server再次连接......