博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ural 1779. The Great Team
阅读量:6859 次
发布时间:2019-06-26

本文共 808 字,大约阅读时间需要 2 分钟。

图论构造类问题

题意:输入n个点,要求你连接一些边,使其变为无向图,并且,在图中任选3个点,这3个点的度都不会完全相等

构造方法是

对于奇数个点,第n/2+1个点不要连线,将点集分为相等的两部分,1到n/2为一部分,n/2+2到n为一部分,从第一部分开始连线,都指向第二部分,1号点连n/2条,2号点连n/2-1条,3号点连n/2-2条………………n/2号点连1条

对于偶数个点是一样的,刚好能将点分为两个部分,两个部分的连线方法一样

(这构造太巧妙了,很容易就能看到不会有3个点的度相同)

 

#include 
#include
#include
using namespace std;int main(){ int n; int s1,t1,s2,t2; cin >> n; if(n & 1) s1 = 1 , t1 = n>>1 , s2 = (n>>1)+2 , t2 = n; else s1 = 1 , t1 = n>>1 , s2 = (n>>1)+1 , t2 = n; int sum = t1 - s1 + 1; int res = (1 + sum) * sum / 2; cout << res << endl; for(int i=s1; i<=t1; i++) for(int j=s2+i-1; j<=t2; j++) cout << i << " " << j << endl; return 0;}

 

转载于:https://www.cnblogs.com/scau20110726/archive/2013/06/12/3132845.html

你可能感兴趣的文章
条件注释判断IE浏览器
查看>>
Hibernate,删除对象时错误。
查看>>
C#中Cookies的读取
查看>>
冬季养生进补20招
查看>>
20179311《网络攻防实践》第四周作业
查看>>
Getting Started
查看>>
《thinking in Java》第三章 控制程序流程
查看>>
node 模块 fs-extra
查看>>
《游戏引擎架构》笔记一
查看>>
pythoy-生成器
查看>>
Redis 分布式锁进化史
查看>>
Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
查看>>
Codeforces Round #547 (Div. 3) D
查看>>
(转)如何修正DIV float之后导致的外部容器不能撑开的问题
查看>>
Python全栈开发day9
查看>>
算法笔记 --- Insertion Sort
查看>>
子父表
查看>>
CUDA npp运动检测模块性能测试
查看>>
前端单点登录(SSO)实现方法(二级域名与主域名)
查看>>
extjs客户端与ABP框架的服务端数据交互杂记
查看>>