codeforces 862 C. Mahmoud and Ehab and the xor(构造)
2024-10-06 10:31:42
题目链接:http://codeforces.com/contest/862/problem/C
题解:一道简单的构造题,一般构造题差不多都考自己脑补,脑洞一开就过了
由于数据x只有1e5,但是要求是1e6,而且我们知道3个数可以组合成任意数也就是说n-3的数从1~1e5直接任意找然后使得其总xor为sum
当sum=x时(定义Max=1<<17 > 1e5)那么这三个数只要组成0就行,当sum!=x时那么这三个数只要构成sum^x就行,这3个数从1e5~1e6中找
很好找的。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std; int main() {
int n , x;
cin >> n >> x;
if(n == ) {
cout << "YES" << endl;
cout << x << endl;
}
else if(n == ) {
if(x == ) {
cout << "NO" << endl;
}
else {
cout << "YES" << endl;
cout << << ' ' << x << endl;
}
}
else {
int Max = << ;
int sum = ;
cout << "YES" << endl;
for(int i = ; i <= n - ; i++) {
cout << i << ' ';
sum ^= i;
}
if(sum == x) {
cout << Max << ' ' << (Max << ) << ' ' << (Max ^ (Max << )) << endl;
}
else {
cout << << ' ' << (Max ^ sum) << ' ' << (Max ^ x) << endl;
}
}
return ;
}
最新文章
- js基础2
- One Page Scroll – 实现苹果风格的单页滚动效果
- 跟着百度学PHP[4]OOP面对对象编程-15-魔术方法__call方法
- C++ 一个统计文件夹下所有代码文件行数的小工具
- [问题2014A02] 解答一(两次升阶法,由张钧瑞同学、董麒麟同学提供)
- 如何理解和使用Java package包
- if for case 及多参数同时传递
- ios-uitableviewcell展开
- amcharts 网页绘图插件
- Bigcommerce:intershop编程经验总结
- 手机低端市场,联发科 vs 高通
- python网络编程——将IPv4地址转换成不同的格式
- ClassLoader的等级加载机制
- JavaScript中常用的Document了解
- #黑客社会工程学攻防演练#[Chapter 1]
- CLR-2-2-引用类型和值类型
- python不能调试的原因
- 浏览器各个版本和系统(chrome/safari/edge/qq/360)
- MySQL 日期笔记
- requestmapping等相关知识