LuoguP6857 梦中梦与不再有梦 题解
Update
- \(\texttt{2020.10.20}\) 增加了证明。感谢@东北小蟹蟹(dbxxxqwq)的提醒。
Content
有一个 \(n\) 个点的无向图,每两个点之间都有一条边直接相连。你从 \(1\) 出发,每条边最多只能经过一次,当走到一个点,其相连的边都不能走时,你会停下来。问你最多能够经过多少条边。
数据范围:\(T\) 组数据,\(T\leqslant 10^5,n\leqslant 10^9\)。
Solution
我们先画图来找规律,先是 \(n=3\) 的,由样例可以直接得知,这个图里面的 \(3\) 条边都能够经过,答案是 \(3\)。
那么,我们再来画几个图找找规律,\(n=4\) 的时候的图是这样的:

自己走一下就可以发现,无论怎么样都有 \(1\) 条边走不了。
那么,\(n=5\) 的时候呢?

我们可以先走五角星状的路线,然后再走五边形状的路线,这样所有边都走得了。
再画一下 \(n=6\) 的图,走一下发现,无论怎么样都有 \(2\) 条边走不了。
然后这样我们得到一个规律:设答案为 \(ans\),则有:
\]
虽然是乱搞得出的规律,但我们惊喜的发现,交上去之后,这样的思路是对的!
乱搞搞完了,我们为什么不证明一下呢?
这道题目其实就是要我们找一个欧拉路径(不会欧拉路径?bfs一下你就知道)。如果是奇数个点的话,必定会形成一个欧拉回路,即存在一个能经过每条边一次并且仅一次的回路,那么也肯定就会有欧拉路径。如果是偶数个点的话,删任意 \(\dfrac{n}{2}-1\) 条边,没有公共顶点的边就可以使整张图变成半欧拉图,存在一条欧拉路径。
那么这样就证明完了,大概就是这样的一道找规律可以水过的题目,找到规律之后写代码挺简单的,但主要问题就是证明了。
Code
int t;
long long n;
int main() {
//This program is written in Windows 10 by Eason_AC
getint(t);
while(t--) {
getll(n);
n = n * (n - 1) / 2 - (!(n % 2) ? n / 2 - 1 : 0);
writell(n), puts("");
}
return 0;
}
LuoguP6857 梦中梦与不再有梦 题解的更多相关文章
- 6.25考试整理:江城唱晚&&不老梦&&棠梨煎雪——题解
按照旧例,先安利一下主要作者:一扶苏一 以及扶苏一直挂念的——银临姐姐:银临_百度百科 (滑稽) 好哒,现在步入正题: 先看第一题: 题解: 在NOIP范围内,看到“求方案数”,就说明这个题是一个计数 ...
- UVA540 Team Queue——题解 by hyl天梦
UVA540 Team Queue 题解 题目描述:题目原题 https://vjudge.net/problem/UVA-540 Queues and Priority Queues are dat ...
- 题解 P4692 【[Ynoi2016]谁的梦】
Ynoi 中少见的不卡常题呢....虽说有 50 个数据点... 果然还是道好题 noteskey 总之就是补集转化的思想,算出每种颜色选点的总方案减去不可行方案(就是不包含 该种颜色的点的区间选取方 ...
- 洛谷P1554 梦中的统计 题解
题目传送门 这道题暴力又让我过了...数据真的很水(luogu) 暴力枚举n~m的每个数,再统计一次,交付评测...AC #include<bits/stdc++.h> using nam ...
- 51nod 算法马拉松17 解题报告 以后不能赛中写题解(查逐梦者抄袭本人代码...
B题(数学题: 问(1+sqrt(2)) ^n 能否分解成 sqrt(m) +sqrt(m-1)的形式 如果可以 输出 m%1e9+7 否则 输出no n<=1e18 刚看题没思路 暴力一下 ...
- 题解 洛谷P4872 【OIer们的东方梦】
一道码量比较大的广搜题,但让我这个辣鸡小学生自闭了一天呜呜呜. 一开始看数据\(n,m \leq 1000\)也并不是特别大,于是用就开始用广搜乱水了. 由于这道题每走一步的代价不是\(1\),所以并 ...
- 洛谷 P5640 【CSGRound2】逐梦者的初心 题解
每日一题 day33 打卡 Analysis 这道题太难♂了,居然才是蓝的. 每个位子和每种字符都是独立的,对每种字符都记录一下位子. 用f[i]=0 or 1 表示长度为ii的后缀可不可以,0表示可 ...
- 题解 洛谷P3799 【妖梦拼木棒】
一道水题 (还是做了一个小时,我太菜了 基本思路: 题里面说,4根棍子拼成一个正三角形(等边三角形) 若设这四根棍子长度为\(a,b,c,d\)且\(a≥b>c≥d\) 那很容易得到 (真的很容 ...
- G - 娜娜梦游仙境系列——梦醒
G - 娜娜梦游仙境系列——梦醒 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
随机推荐
- 最强最全面的Hive SQL开发指南,超四万字全面解析
本文整体分为两部分,第一部分是简写,如果能看懂会用,就直接从此部分查,方便快捷,如果不是很理解此SQL的用法,则查看第二部分,是详细说明,当然第二部分语句也会更全一些! 第一部分: hive模糊搜索表 ...
- GoF23种(部分)软件设计模式【核心理解】
设计模式复习 1. 面向对象设计原则 1.1 可维护性较低的软件设计 过于僵硬 过于脆弱 复用率低 黏度过高 1.2 一个好的系统设计 可扩展性 灵活性 可插入性 复用:一个软件的组成部分可以在同一个 ...
- [GZOI2017]配对统计
发现我们可以在\(O(n)\)里很多处理出至多\(2n\)对好对. 然后转化成二维偏序. 然后想怎么做怎么做:排序+BIT,莫队都行.
- 洛谷 P4707 - 重返现世(扩展 Min-Max 容斥+背包)
题面传送门 首先看到这种求形如 \(E(\max(T))\) 的期望题,可以套路地想到 Min-Max 容斥 \(\max(S)=\sum\limits_{T\subseteq S}(-1)^{|T| ...
- 毕业设计之ansible_quan_bbs设置
ansible创建连接: 客户端(管理节点) 可能需要安装包: yum install -y libselinux-python 实现ssh免密码登陆管理的服务器 [apps@anza ~]$ sud ...
- 亿级Web系统搭建:单机到分布式集群
亿级Web系统搭建:单机到分布式集群 当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压 ...
- lxml解析库的安装和使用
一.lxml的安装lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.本节中,我们了解一下lxml的安装方式,这主要从Windows.Linux ...
- centos安装后的个人工具
1.安装vim工具 yum -y install vim 安装完成后在家目录下新建一个.vimrc的配置文件.辅助vim软件功能. set number " 显示行号 set cursorl ...
- SpringCloud微服务实战——搭建企业级开发框架(二十八):扩展MybatisPlus插件DataPermissionInterceptor实现数据权限控制
一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我们来介绍,通过扩展Mybatis-Plus的插件DataPermissionInterce ...
- day9 图书设计项目
总路由层url from django.conf.urls import url from django.contrib import admin from app01 import views ur ...