uoj#283. 直径拆除鸡(构造)
传送门
好神的构造题
vfk巨巨的题解
//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
char buf[1<<21],*p1=buf,*p2=buf;
inline char getc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++;}
int read(){R int res,f=1;R char ch;while((ch=getc())>'9'||ch<'0')(ch=='-')&&(f=-1);for(res=ch-'0';(ch=getc())>='0'&&ch<='9';res=res*10+ch-'0');return res*f;
}
char sr[1<<21],z[20];int C=-1,Z=0;
inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;}
void print(R int x,R char ch){if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;while(z[++Z]=x%10+48,x/=10);while(sr[++C]=z[Z],--Z);sr[++C]=ch;
}
int n,m,now,tot,las,res,ans;
int main(){
// freopen("testdata.in","r",stdin);n=read(),m=read();for(R int i=1;(i+1)*(i+1)<=n;++i){now=0,tot=n;fd(j,i,1)now+=tot,tot-=2*j+1;now+=tot;if(now>ans)ans=now,res=i;}tot=las=0;fd(i,res,1){fp(j,1,(i<<1))printf("%d %d\n",tot+j,tot+j+1);if(tot)printf("%d %d\n",las,tot+i+1);las=tot+i+1,tot+=(i<<1)+1;}if(!res)las=tot=1;while(tot<n)printf("%d %d\n",las,++tot);return 0;
}
转载于:https://www.cnblogs.com/bztMinamoto/p/10242423.html
uoj#283. 直径拆除鸡(构造)相关推荐
- UOJ#284-快乐游戏鸡【长链剖分,线段树】
正题 题目链接:https://uoj.ac/problem/284 题目大意 nnn个点的一棵树,每个点有一个wiw_iwi表示至少死亡wiw_iwi次才能通过这个点,否则就会死亡.只能往子节点 ...
- [BZOJ4379][POI2015]Modernizacja autostrady[树的直径+换根dp]
题意 给定一棵 \(n\) 个节点的树,可以断掉一条边再连接任意两个点,询问新构成的树的直径的最小和最大值. \(n\leq 5\times 10^5\) . 分析 记断掉一条边之后两棵树的直径为 \ ...
- ZJOI2019一轮停课刷题记录
Preface 菜鸡HL终于狗来了他的省选停课,这次的时间很长,暂定停到一试结束,不过有机会二试的话还是可以搞到4月了 这段时间的学习就变得量大而且杂了,一般以刷薄弱的知识点和补一些新的奇怪技巧为主. ...
- 游记-NOIP2018
Day -3 受蛊惑跑到理工大去试机,意外发现home里的noilinux账户下有个压缩包,而且还试对了密码,怀着 激动 紧张的心情,打开来看,里面写着 (写出来我就会被禁赛了): asdfasdra ...
- 【游记】NOIP-2018翻车记
Day -3 受蛊惑跑到理工大去试机,意外发现home里的noilinux账户下有个压缩包,而且还试对了密码,怀着 激动 紧张的心情,打开来看,里面写着 (写出来我就会被禁赛了): asdfasdra ...
- 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns
题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************* ...
- UOJ#351-新年的叶子【树的直径,数学期望】
正题 题目链接:https://uoj.ac/problem/351 题目大意 给出nnn个点的一棵树,开始所有点都是白色,每次随机点黑一个叶子(可以重复点),求期望多少次能使得白色点构成的图直径发生 ...
- 【VK Cup 2016 - Round 1 (Div 2 Edition)C】【构造】Bear and Forgotten Tree 3 构造一棵树直径为d且点1的深度为h
Bear and Forgotten Tree 3 time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- UOJ#460. 新年的拯救计划 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ460.html 题解 本题的构造方法很多.这里只介绍一种. 首先,总边数为 $\frac{n(n-1)}2 ...
- 【uoj#225】[UR #15]奥林匹克五子棋 构造
题目描述 两个人在 $n\times m$ 的棋盘上下 $k$ 子棋,问:是否存在一种平局的情况?如果存在则输出一种可能的最终情况. 输入 第一行三个正整数 $n,m,k$ ,意义如前所述. 输出 如 ...
最新文章
- *30.什么是微内核
- 永磁同步电机试验系统的设计
- 对于一个管理性的软件来讲,数据主键的产生策略是很关键的一点,这个关系到整个系统的基础架构思想。...
- JMM和synchronized
- python3 在线加密_Python3非对称加密算法RSA实例详解
- elasticsearch(七)java 搜索功能Search Request的介绍与使用
- php使用到的函数记录一
- 使用Scylla进行OSINT信息收集
- php dom 分离html内容
- 大数据精准营销数据分析处理(一)
- 科技论文之Introduction部分写作
- redis的安装,配置
- 介数中心度与紧密中心度_将开发团队与技术紧密结合的6种方法
- 数学规划模型(一):数学规划模型的基本知识
- 基于VS2015MFC在X86debug编译平台调试opengl 代码出现oxc0000007b错误的解决方法
- js实现获取今日、本周、本月、本学期的开始结束日期
- 商会管理系统_沈阳写字间丨商会总部大厦
- UVC系列5-编写Android jni代码实现控制PTZ
- Linux内存手动清理释放方法
- matlab 对话框保持,如何在matlab中创建输入对话框?(How to create Input dialog box in matlab?)...