CodeForces - 1270C Make Good(思维+构造)
题目链接:点击查看
题目大意:给出一个由n个数字构成的数列,现在已知其累加和为sum,异或和为xor,现在允许我们向数列中添加0~3个数,以满足sum=2*xor,构造出任意一种方案
题目分析:一开始我想分情况讨论的,就是在求出sum和xor之后,讨论一下其大小关系,如果sum小于2*xor的话,直接补齐两个其差值的一半就好了,因为新补的两个数对xor不做贡献,而对sum的贡献就是差值,可以满足条件了,不过需要对奇偶讨论一下,因为奇数的一半会出现小数,这个时候我们就可以用第三个数来补齐一下了,也就是先让sum加一,再让xor异或1,这个时候其差值就是偶数了,剩下的就是当sum大于2*xor的时候,这个时候我考虑到首先加上一个数,让其回到第一种情况即可,不过这样想下来构造所需要处理的细节就太多太多了。。很不可取,即使勉强写出来了也耗费了不少时间,而且应该很难1A
这个时候我们就可以直接从公式出发,先将数字抽象出来,在输入完成后我们只有sum和xor两个数值,若想满足sum=xor*2,因为不可控因素较多,我们不妨先把xor给消掉,也就是添加一个数,令其权值等于xor,这样等式就变成了sum+xor=2*(xor^xor),也就是sum+xor=0,这有个什么好处呢,这个公式的等式右边,也就是需要异或的地方变成了零,接下来我们无论添加的数为多少,会造成的贡献就是等式两边都加上相同的数值,因为我们需要维持两倍的关系,所以完全可以添加一个sum+xor,这样等式两边就可以符合题意了
代码:
#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int main()
{
// freopen("input.txt","r",stdin);
// ios::sync_with_stdio(false);int w;cin>>w;while(w--){int n;scanf("%d",&n);LL sum=0,_xor=0;for(int i=1;i<=n;i++){LL num;scanf("%lld",&num);sum+=num;_xor^=num;}printf("2\n");printf("%lld %lld\n",_xor,_xor+sum);}return 0;
}
CodeForces - 1270C Make Good(思维+构造)相关推荐
- CodeForces - 1291D Irreducible Anagrams(思维+构造)
题目链接:点击查看 题目大意:首先规定两个字符串 s 和 t 为 Anagrams ,当且仅当字符串 t 可以通过字母重新排列后得到 s ,也就是每个字符出现的次数相同,但位置不做要求,紧接着规定另一 ...
- CodeForces - 125C Hobbits' Party(思维+构造)
题目链接:点击查看 题目大意:有一个派对,现在有 n 个人参加,题目要求我们构造出一种参加方式,满足条件且可以维持的天数最大: 任意两天中至少有一个相同的人参加 任意三天中不能有一个相同的人参加 输出 ...
- CodeForces - 1270D Strange Device(思维+构造)
题目链接:点击查看 题目大意:规定一个含有n个元素的数组a,每个元素互不相等,但是全部未知,现在给出一台机器,这台机器有两个参数,分别是k和m,其意义是每次可以询问k个下标,机器将给出k个下标中第m大 ...
- CodeForces - 1504C Balance the Bits(思维+构造)
题目链接:https://vjudge.net/problem/CodeForces-1504C 题目大意:给出一个长度为 nnn 的 010101 串,现在要求构造出两个长度为 nnn 的合法括号序 ...
- Codeforces Round #624 (Div. 3) E. Construct the Binary Tree 思维 + 构造
传送门 文章目录 题意: 思路: 题意: 给你n,dn,dn,d,让你构造有nnn个点的二叉树,他们每个节点深度和为ddd. n,d≤3000n,d\le 3000n,d≤3000. 思路: 先考虑不 ...
- 【CodeForces - 798D】Mike and distribution (思维构造,贪心,黑科技)
题干: Mike has always been thinking about the harshness of social inequality. He's so obsessed with it ...
- CodeForces - 1265D Beautiful Sequence(贪心+构造+思维)
题目链接:点击查看 题目大意:给出a个0,b个1,c个2,d个3,要求构造一种序列,使得数列两两之间绝对值之差等于1,若不能构造输出NO 题目分析:首先我们需要稍微讨论一下特殊情况,那就是对于两端的数 ...
- CodeForces - 618B Guess the Permutation(思维+构造)
题目链接:点击查看 题目大意:先给出一个长度为n的序列ai,这个序列是1~n全排列中的其中一种,再给出一个n*n的矩阵,maze[i][j]=val代表min(ai,aj)=val,要求我们构造出原始 ...
- CodeForces - 715A Plus and Square Root(思维+构造)
题目链接:点击查看 题目大意:我们在玩一个游戏,屏幕上有一个数字,我们设这个数字为x,初始值为2,我们一开始的等级是k,我们每一次可以有两种操作: 加法:可以让x加上k 开根号:可以让x开根号,并且等 ...
最新文章
- oracle 9i sql_id,Oracle9i增添 wm_concat函数(转)
- 函数式编程语言天生就慢吗?
- 21. Function 对象
- 活代码LINQ——08
- 连接mysql_spring boot连接mysql提示The server time zone value xxx错误
- ubuntu下安装tftp
- [网安实践II] 实验2. 密码学实验
- centos linux远程桌面连接工具,VNC Viewer轻松连接远程CentOS6.8桌面
- Android事件机制深入探讨(一)
- 针孔相机畸变成像详解
- Java基础学习总结(98)——阿里巴巴Java开发手册
- 2023 简单在线画板HTML源码
- 金蝶云苍穹笔记(三)
- 【机器学习】决策树(实战)
- 与黑客讨价还价,勒索攻击企业数据是关键
- Echarts CPU监控 (折线仪表盘,图例混搭)
- 老闪创业那些事儿(50)——校园招聘(下)
- Python文本爬虫实战
- 学会VBA,菜鸟也高飞!
- div id与div class用法讲解