IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Codeforces Round #769 (Div. 2) A ~ C -> 正文阅读

[C++知识库]Codeforces Round #769 (Div. 2) A ~ C

https://codeforces.com/contest/1632/problem/A

题意:给定一个字符串,由01组成,可以去掉头尾任意数量的字符,问是否可以构成长度大于1的回文串。
题解:当字符串长度为1时,不能,长度为2时,若首尾不同则不能,若大于等于三,则可以。

 
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		string res;
		cin >> n >> res;
		if (n == 1) cout << "YES" << endl;
		else if (n == 2 && res[0] != res[1]) cout << "YES" << endl;
		else cout << "NO" << endl;
	}
	return 0;
}

https://codeforces.com/contest/1632/problem/B

题意:给定n,通过0到n-1的所有数,构造一个最小的数组(即相邻异或值的最大最小)
题解:贪心。首先找到n-1的最高位,把所有和n-1有同样最高位的数相邻。最后给2的最高位次方配0, 2的最高位次方+1的数配1。其余数随意排列。

int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int a, b;
		cin >> a >> b;
		int t = a ^ b;
		int c = a | b;
		if (c != b)
		{
			int zui = 0;
			for (int i = 31; i >= 0; i--)
			{
				if ((1 << i) & b)
				{
					zui = i;
					break;
				}
			}
			int tt = 1 << zui;
			if (t - tt > 0) t -= tt;
			for (int i = 31; i >= 0; i--)
			{
				if ((1 << i) & t)
				{
					zui = i;
					break;
				}
			}
			int cnm = 0, mmp = 0;
			for (int i = 0; i <= zui; i++)
			{
				if ((b >> i) & 1) cnm += pow(2, i);
			}
			for (int i = 0; i <= zui; i++)
			{
				if ((a >> i) & 1) mmp += pow(2, i);
			}
			int d = t - max(cnm, mmp);
			cout << min(b - a, d + 1) << endl;
		}
		else
		{
			cout << 1 << endl;
		}
	}
	return 0;
}

https://codeforces.com/contest/1632/problem/C

题意:给定数字a,b。每次可以给a加1或b加1或将a|b的值赋给a,问使得a=b的最小操作次数。
题解:可以暴力求解,但需要注意得暴力两次!!

int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int a, b;
		cin >> a >> b;
		int ans = b - a;
		for (int i = a; i <= b; i++)
		{
			ans = min(ans, (i | b) + i - a - b + 1);
		}
		int t = ans;
		for (int i = b + 1, j = 1; j <= t; i++, j++)
		{
			ans = min(ans, (i | a) + 1 - b);
		}
		cout << ans << endl;
	}
	return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:25:11  更:2022-02-01 20:25:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:12:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码