CF819E:Mister B and Flight to the Moon(构造、归纳法)
解析
本题也算看了一半题解吧
看到“数学归纳法”退出来自己推的
这题想到归纳法后面也就简单了
首先,n=3和n=4的时候显然有解,可以打表
然后考虑在获得n-2的答案时,如何获得n的答案
如果n为奇数,我们可以把(1,n-1,2,n)、(3,n-1,4,n)…(n-4,n-1,n-3,n)各连两次,最后连两个(n-2,n-1,n)
如果n为偶数,我们可以把(1,n-1,2,n)、(3,n-1,4,n)…(n-5,n-1,n-4,n)各连两次,最后连一个(n-3,n-1,n-2,n)、(n-3,n-1,n)和(n-2,n-1,n)
然后…这道黑题就解决了…
(本人自己写了个checker,欢迎取用)
代码
#include<bits/stdc++.h>
const int N=2e6+100;
const int mod=1e9+7;
#define ll long long
using namespace std;
inline ll read() {ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}int n,m;
int num[N],x[N],y[N],z[N],k[N],tot;
inline void add(int a,int b,int c){++tot;x[tot]=a;y[tot]=b;z[tot]=c;num[tot]=3;
}
inline void add(int a,int b,int c,int d){++tot;x[tot]=a;y[tot]=b;z[tot]=c;k[tot]=d;num[tot]=4;
}
void work(int n){if(n==1) return;if(n==4){add(1,2,3);add(2,3,4);add(3,4,1);add(4,1,2);return;}if(n&1){for(int i=1;i<=n-3;i+=2) add(i,n-1,i+1,n),add(i,n-1,i+1,n);add(n-2,n-1,n);add(n-2,n-1,n);work(n-2);}else{for(int i=1;i<=n-4;i+=2) add(i,n-1,i+1,n),add(i,n-1,i+1,n);add(n-3,n-1,n);add(n-2,n-1,n);add(n-3,n-1,n-2,n);work(n-2);}
}
int main(){#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout);#endifn=read();work(n);//printf("%d ",n);printf("%d\n",tot);for(int i=1;i<=tot;i++){printf("%d ",num[i]);if(num[i]==3) printf("%d %d %d\n",x[i],y[i],z[i]);else printf("%d %d %d %d\n",x[i],y[i],z[i],k[i]);}
}
/*
1
281239
*/
checker
#include <cstdio>//checker by wind_whisper
#include <algorithm>using namespace std;
#define ll long long
const int N = 1e6 + 10;
inline ll read() {ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
int n,m;
int vis[900][900],x[5];
int main() {freopen("a.out","r",stdin);n=read();m=read();for(int i=1;i<=m;i++){int k=read();for(int j=1;j<=k;j++){x[j]=read();if(j>1) vis[x[j]][x[j-1]]++,vis[x[j-1]][x[j]]++;}vis[x[1]][x[k]]++;vis[x[k]][x[1]]++;}for(int i=1;i<=n;i++){for(int j=1;j<i;j++){if(vis[i][j]!=2){printf("WA! (%d %d) have %d edges\n",i,j,vis[i][j]);return 0;}}}printf("AC!\n");return 0;
}
CF819E:Mister B and Flight to the Moon(构造、归纳法)相关推荐
- HTB打靶日记:Flight
信息收集: Tcp协议: nmap -p- -sT --min-rate=1000 -Pn 10.129.228.120 Udp协议: nmap -p- -sU --min-rate=1000 -Pn ...
- Kibana 用户指南(使用Flight仪表盘探索Kibana)
使用Flight仪表盘探索Kibana 你是Kibana的新手并希望尝试一下,只需单击一下,你就可以安装Flights样本数据并开始与Kibana交互. Flight数据集包含四家航空公司的数据,你可 ...
- 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能...
下期预告: 由于很多园友反馈,有的组件不应该缺席.测试复杂度不够.测试还缺乏一定的公平. 因此考虑在下一个版本中,确保在更加公平的前提下进行更高复杂度的测试 . 同时将分为2组测试,纯SQL组件及纯O ...
- Ubuntu 搭建 Zerotier One MOON 根目录服务器
原文转摘:http://www.congan.wang/archives/947 博主倒腾了一天,总算搞定了,主要是受到各种搭建教程的错误引导,导致关键过程错误. 官网的MOON搭建教程:https: ...
- 理解Flight框架核心
看到了这篇分析flight的文章还不错,就转过来了,地址:https://blog.csdn.net/sky_zhe/article/details/38906689 Flight框架(官网)是一个微 ...
- linux 飞行模拟,为推进2020款微软飞行模拟器开发:微软启动Flight Simulator X Beta测试...
你对2020年上线的<微软飞行模拟器>(Microsoft Flight Simulator)感兴趣吗?你在Steam上是否已经购买拥有了Microsoft Flight Simulato ...
- A flight (to Boston) to Denver - 基于转移的顺滑技术研究 | 论文访谈间 #22
「论文访谈间」是由 PaperWeekly 和中国中文信息学会青工委联合发起的论文报道栏目,旨在让国内优质论文得到更多关注和认可. 这是第 22 期「论文访谈间」 论文作者 | 王少磊,车万翔,刘挺, ...
- flight php 中文,PHP: composer的简单使用
安装 $ sudo php -r "readfile('https://getcomposer.org/installer');" | php $ sudo mv composer ...
- ----icon moon追加新字体图标----
一.初始自定义字体为icon moon1@font-face {font-family: 'icomoon1';src: url('fonts/icomoon1.eot?9fhn24');src: u ...
最新文章
- 微信小程序获取用户设备的信息
- linux socket 阻塞非阻塞设置 fcntl,F_GETFL,F_SETFL,flags
- DEDE利用Ajax实现调用当前登录会员的信息简要说明
- 跨链Cosmos(1) 网络拓扑
- java cron表达式_Java 程序员都应该去使用一下这款强大的国产工具类库
- SiftGPU:编译SiftGPU出现问题-无法解析的外部符号 glutInit
- 记一次ora-1652错误的解决过程
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
- 图解JVM内存三大核心区域及其JVM内存案例实战剖析
- MyEclipse控制台报错:java.lang.OutOfMemoryError: PermGen space
- SQL:postgresql中实现查询某字段总数量和该字段不同值各自的数量
- (四)JMockit 的API:@Injectable 与 @Mocked的不同--基础篇
- 火车票服务端集成总结
- 编译原理——证明文法具有二义性
- 基本系统调用性能lmbench测试方法和下载
- 是否可以将一个控件的outerHTML赋值?
- 优化理论16----Armijo-Goldstein准则、 Armijo-Goldstein搜索方法、python实现
- 黎曼猜想(二)全体自然数之和等于-1/12和解析延拓
- 剑指offer_1:给你一根长度为n的绳子,把绳子剪成m段(m、n都是整数且m 1, n 1),m段绳子的长度依然是整数,求m段绳子的长度乘积最大为多少? * 比如绳子长度为8,我们可以分成
- Golang 基础:底层并发原语 Mutex RWMutex Cond WaitGroup Once等使用和基本实现
热门文章
- Lanchester战争模型:用可分离变量的微分方程占卜战事
- inputn函数与input函数的区别
- php用switch编写车费的输出,PHP Switch语句在实际代码中的应用
- 系统即将关机请保存关机是由nt_设置Windows电脑自动关机
- mysql tdh_socket_thread_num_TDH_Socket的一些性能对比数据
- linux运维趋势 37期刊为啥没有,linux运维常见问题
- 囊括计算机 电子信息仿真技术,什么是虚拟现实?
- HTML第八章ppt,第八章 web基础教程之HTML篇v1.0.ppt
- android手机拍摄权限,react-native 手机拍照权限
- mysql anyvalue函数_Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式