题解——Codeforces Round #508 (Div. 2) T2 (构造)
按照题意构造集合即可
注意无解情况的判断
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <map>
using namespace std;
int n,sum;
int main(){
scanf("%d",&n);
if(n==){
printf("No\n");
return ;
}
sum=(n+)*n/;
// printf("%d\n",sum);
for(int i=;i<=sum;i++){
for(int j=;j<=sqrt(i);j++){
if(i%j==){
if(j!=i/j){
if(j!=&&sum!=i){
if((sum-i)%j==){
vector<int> ax,bx;
int cnta=,cntb=;
int now=n;
for(int k=i;k>;){
if(k>=now){
k-=now;
cnta++;
ax.push_back(now);
now--;
}
else{
cntb++;
bx.push_back(now);
now--;
}
}
while(now){
bx.push_back(now);
now--;
cntb++;
}
printf("Yes\n");
printf("%d ",cnta);
for(int i=;i<ax.size();i++)
printf("%d ",ax[i]);
printf("\n");
printf("%d ",cntb);
for(int i=;i<bx.size();i++)
printf("%d ",bx[i]);
printf("\n");
return ;
}
}
if(i/j!=&&sum!=i){
if((sum-i)%(i/j)==){
vector<int> ax,bx;
int cnta=,cntb=;
int now=n;
for(int k=i;k>;){
if(k>=now){
k-=now;
cnta++;
ax.push_back(now);
now--;
}
else{
cntb++;
bx.push_back(now);
now--;
}
}
while(now){
bx.push_back(now);
now--;
cntb++;
}
printf("Yes\n");
printf("%d ",cnta);
for(int i=;i<ax.size();i++)
printf("%d ",ax[i]);
printf("\n");
printf("%d ",cntb);
for(int i=;i<bx.size();i++)
printf("%d ",bx[i]);
printf("\n");
return ;
}
}
}
else{
if(j!=&&i!=sum)
if((sum-i)%j==){
vector<int> ax,bx;
int cnta=,cntb=;
int now=n;
for(int k=i;k>;){
if(k>=now){
k-=now;
cnta++;
ax.push_back(now);
now--;
}
else{
cntb++;
bx.push_back(now);
now--;
}
}
while(now){
bx.push_back(now);
now--;
cntb++;
}
printf("Yes\n");
printf("%d ",cnta);
for(int i=;i<ax.size();i++)
printf("%d ",ax[i]);
printf("\n");
printf("%d ",cntb);
for(int i=;i<bx.size();i++)
printf("%d ",bx[i]);
printf("\n");
return ;
}
}
}
}
}
printf("No\n");
return ;
}
题解——Codeforces Round #508 (Div. 2) T2 (构造)的更多相关文章
- 题解——Codeforces Round #508 (Div. 2) T3 (贪心)
贪心的选取最优解 然后相减好 记得要开long long #include <cstdio> #include <algorithm> #include <cstring ...
- 题解——Codeforces Round #508 (Div. 2) T1 (模拟)
依照题意暴力模拟即可A掉 #include <cstdio> #include <algorithm> #include <cstring> #include &l ...
- Codeforces Round #508 (Div. 2)
Codeforces Round #508 (Div. 2) http://codeforces.com/contest/1038 A #include<bits/stdc++.h> us ...
- [题解] Codeforces Round #549 (Div. 2) B. Nirvana
Codeforces Round #549 (Div. 2) B. Nirvana [题目描述] B. Nirvana time limit per test1 second memory limit ...
- Codeforces 1038F Wrap Around (Codeforces Round #508 (Div. 2) F) 题解
写在前面 此题数据量居然才出到\(n=40\)???(黑人问号)以下给出一个串长\(|S|=100,n=10^9\)的题解. 题目描述 给一个长度不超过\(m\)的01串S,问有多少个长度不超过\(n ...
- Codeforces Round #508 (Div. 2) E. Maximum Matching(欧拉路径)
E. Maximum Matching 题目链接:https://codeforces.com/contest/1038/problem/E 题意: 给出n个项链,每条项链左边和右边都有一种颜色(范 ...
- Codeforces Round #272 (Div. 1) B 构造 math
http://www.codeforces.com/contest/477/problem/C 题目大意:给你n个集合,每个集合里面有四个数字,他们的gcd是k,输出符合条件的集合中m,m为集合中最大 ...
- Codeforces Round #508 (Div. 2) D. Slime
D. Slime 题目链接:https://codeforces.com/contest/1038/problem/D 题意: 给出两个数,然后每次可以对相邻的两个数合并,比如x,y,那么合并过后就是 ...
- CF1103C Johnny Solving (Codeforces Round #534 (Div. 1)) 思维+构造
题目传送门 https://codeforces.com/contest/1103/problem/C 题解 这个题还算一个有难度的不错的题目吧. 题目给出了两种回答方式: 找出一条长度 \(\geq ...
随机推荐
- Yii GridView
- 使用JFileChooser实现在指定文件夹下批量添加根据“数字型样式”或“非数字型样式”命令的文件夹
2018-11-05 20:57:00开始写 Folder.java类 import javax.swing.JFrame; import javax.swing.JPanel; import jav ...
- XML系列之--创建电文格式的XML(一)
关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作.趁此契机好好回顾下XML ...
- python 将字节写入文本文件
想在文本模式打开的文件中写入原始的字节数据 将字节数据直接写入文件的缓冲区即可 >>> import sys >>> sys.stdout.write(b'Hell ...
- HIBERNATE与 MYBATIS的对比
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- JustOj 1415: 字符串解压
题目描述 豆豆非常调皮,总喜欢把一样的东西摆在一起,然后用神奇的猫爪功把他们揉成一团. 比如一堆A,就会被揉成个数+A. 这就是豆豆的字符串压缩算法了. 比如给豆豆一个字符串:ABBCCCDDDDEE ...
- 搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境
一.开发环境配置 开始之前,假设你已经安装了最新版本的 node 和 npm. 全局安装 vue-cli 和 webpack : npm install vue-cli webpack -g 创建工 ...
- 前端框架VUE----vue的使用
一.安装 对于新手来说,强烈建议大家使用<script>引入 二. 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函数. 三.使用V ...
- 【移动端】js禁止页面滑动与允许滑动
禁止页面滑动 通常静止滑动方案:(阻止滑动事件) window.ontouchmove=function(e){ e.preventDefault && e.preventDefaul ...
- Oracle之数据库的增删改查和格式的修改
Oracle修改数据 *update语句 格式: update table_name set column1=value1,…[where conditions] 例子: update userinf ...