【Codeforces Round #452 (Div. 2) C】 Dividing the numbers
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
1.
n为偶数。
l = 1, r = n
(l,r)放在一组
l++,r--
新的l,r放在另外一组
直到l+1==r
这个时候,判断两组的和,如果一样的话,分散在两组
差为1否则差为0
2.
n为奇数
l = 2,r = n
(l,r)放在一组
l++,r--
新的l,r放在另外一组
直到l+1==r
这个时候,判断两组的和,如果一样的话,分散在两组
差为0(把1放在那个较少的组)
否则,差为1
1随意放在哪一组都可以
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int now = 0;
vector<ll> v[2];
ll sum[2];
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
if (n%2==0){
int l = 1,r = n;
while (l+1<r){
v[now].push_back(l);
v[now].push_back(r);
sum[now]+=(l+r);
now = now^1;
l++,r--;
}
ll differ = 0;
if (sum[0]!=sum[1]){
v[now].push_back(l);
v[now].push_back(r);
differ = 0;
}else{
differ = 1;
v[0].push_back(l);
v[1].push_back(r);
}
cout << differ<<endl;
cout << (int) v[0].size();
for (int i = 0;i < (int) v[0].size();i++) cout <<' '<< v[0][i];
}else{
int l = 2,r = n;
while (l+1<r){
v[now].push_back(l);
v[now].push_back(r);
sum[now]+=(l+r);
now = now^1;
l++,r--;
}
ll differ = 0;
if (sum[0]!=sum[1]){
v[now].push_back(l);
v[now].push_back(r);
differ = 1;
}else{
differ = 0;
v[0].push_back(l);
v[0].push_back(1);
v[1].push_back(r);
}
cout << differ<<endl;
cout << (int) v[0].size();
for (int i = 0;i < (int) v[0].size();i++) cout <<' '<< v[0][i];
}
return 0;
}
【Codeforces Round #452 (Div. 2) C】 Dividing the numbers的更多相关文章
- 【Codeforces Round #452 (Div. 2) A】 Splitting in Teams
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 贪心 1优先和2组队. 如果1没有了 就结束. 如果1还有多余的. 那么就自己3个3个组队 [代码] #include <bi ...
- 【Codeforces Round #452 (Div. 2) B】Months and Years
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 闰,平,平 平,闰,平 平,平,闰 平,平,平 4种情况都考虑到就好. 可能有重复的情况. 但是没关系啦. [代码] #includ ...
- 【Codeforces Round #452 (Div. 2) D】Shovel Sale
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让N乘2->a 然后看一下位数是多少. 假设有x位(x>=2) 则(0..(a%10-1) ) + (99..9)[x- ...
- 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers
[链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...
- 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes
[题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...
- 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
- 【Codeforces Round #420 (Div. 2) A】Okabe and Future Gadget Laboratory
[题目链接]:http://codeforces.com/contest/821/problem/A [题意] 给你一个n*n的数组; 然后问你,是不是每个位置(x,y); 都能找到一个同一行的元素q ...
- 【Codeforces Round #423 (Div. 2) C】String Reconstruction
[Link]:http://codeforces.com/contest/828/problem/C [Description] 让你猜一个字符串原来是什么; 你知道这个字符串的n个子串; 且知道第i ...
- 【Codeforces Round #423 (Div. 2) B】Black Square
[Link]:http://codeforces.com/contest/828/problem/B [Description] 给你一个n*m的格子; 里面包含B和W两种颜色的格子; 让你在这个格子 ...
随机推荐
- Effective C++ Item 30 inline里里外外
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie Item 44 46 1.将大多数 inlining 限制在小型.被频繁调用的函数身上.这可 ...
- 一张图片让你了解android的事件分发机制
- C++刷题——2802: 推断字符串是否为回文
Description 编敲代码,推断输入的一个字符串是否为回文. 若是则输出"Yes".否则输出"No". 所谓回文是指順读和倒读都是一样的字符串. Inpu ...
- tomcat-servlet-client
headfirst的一个图,但解决了我的一个疑问
- angularjs之手机输入法回车变搜索,并触发事件,兼容pc回车事件
一.效果:回车按钮变搜索 之前的输入法: 之后的输入法: 二.功能实现 <input type="search" id="search_input" pl ...
- Scrapy发送POST请求
一.发送post请求需要将start_urls注释,然后重写start_requests方法二.使用yield scrapy.FormRequest(url=post_url, formdata=fo ...
- Linux下yum安装ffmpeg和使用
本文属于转载文章:转载地址是http://www.cnblogs.com/dennisit/archive/2012/12/27/2835089.html 使用Yum安装ffmpeg 打开 vi /e ...
- 超好用的谷歌浏览器、Sublime Text、Phpstorm、油猴插件合集
原文:超好用的谷歌浏览器.Sublime Text.Phpstorm.油猴插件合集 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.c ...
- Swift学习笔记(6)--字典
1.定义 //1.基本定义 [key 1: value 1, key 2: value 2, key 3: value 3] var dict = ["name":"Xi ...
- Swift学习笔记(1)--基本语法
1.分号; 1>Swift不要求每个语句后面跟一个分号作为语句结束的标识,如果加上也可以,看个人喜好 2>在一行中写了两句执行语句,需要用分号隔开,比如 let x = 0; printl ...