洛谷P1755 攻击火星
题目描述
一群外星人将要攻击火星。
火星的地图是一个n个点的无向图。这伙外星人将按照如下方法入侵,先攻击度为0的点(相当于从图中删除掉它),然后是度为1的点,依此类推直到度为n-1的点。
所有的点度统计是动态统计的。(一个点删掉后,与之相连的点的点度都会-1)。外星人攻击度为某个数的点时是同时攻击的。
你需要设计这个图的边的方案来使得未被攻击的点最多。
输入输出格式
输入格式:
输入文件包含一行一个整数n。
输出格式:
一行一个整数,表示最多的最后未被攻击的点。
输入输出样例
3
1
说明
【样例解释】
①-②-③,这样首先删掉度为1的①和③,此时②度数为0,不会被删去。
【数据范围】
对于20%的数据1<=n<=10
对于100%的数据1<=n<=50000
【题目来源】
tinylic改编
By tinylic
经过找规律可以发现答案为n-2.
以下是证明:
令d[i]为i 的度数。
考虑一个点i 不被删去的条件,必然是前面与i 相邻的点j(可以是多个)被删去,导致d[i]
减小至小于等于d[j].
1)易知ans!=n。
2)考虑ans能否是n-1,也就是只删一个点,设这个点为i。
因为i 是唯一被删去的点,所以d[i]一定不是最大的,即d[i]<n-1。
其次删去i 导致其余点的d[]均发生改变,从而无法被删去。
即i 和其余点都相连,d[i]=n-1,矛盾。
所以ans!=n-1.
3)我们可以构造出ans=n-2的情况:
构造完全图G,删去一条边(i,j)。这样d[i]=d[j]=n-2,其余d[]均为n-1.
首先删去VI,Vj,这样其余点各少两条边,d[]均变成n-3,不用被删去。
由此n-2是合法的解,也是最大的解,所以答案就是n-2.
/*By SilverN*/
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
printf("%d\n",max(,n-));
return ;
}
洛谷P1755 攻击火星的更多相关文章
- 洛谷——P1416 攻击火星
P1416 攻击火星 题目描述 一群外星人将要攻击火星. 火星的地图是一个n个点的无向图.这伙外星人将按照如下方法入侵,先攻击度为0的点(相当于从图中删除掉它),然后是度为1的点,依此类推直到度为n- ...
- 洛谷 P1416 攻击火星
P1416 攻击火星 题目描述 一群外星人将要攻击火星. 火星的地图是一个n个点的无向图.这伙外星人将按照如下方法入侵,先攻击度为0的点(相当于从图中删除掉它),然后是度为1的点,依此类推直到度为n- ...
- 洛谷 P4585 [FJOI2015]火星商店问题 解题报告
P4585 [FJOI2015]火星商店问题 题目描述 火星上的一条商业街里按照商店的编号\(1,2,\dots,n\) ,依次排列着\(n\)个商店.商店里出售的琳琅满目的商品中,每种商品都用一个非 ...
- 洛谷——P1755 斐波那契的拆分
P1755 斐波那契的拆分 题目背景 无 题目描述 已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法 输入输出格式 输入格式: 一个数t,表示有t组数据 接下来t行,每行一个 ...
- 洛谷 P1755 斐波那契的拆分
P1755 斐波那契的拆分 题目背景 无 题目描述 已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法 输入输出格式 输入格式: 一个数t,表示有t组数据 接下来t行,每行一个 ...
- [洛谷P4585] [FJOI2015] 火星商店问题
Description 火星上的一条商业街里按照商店的编号 \(1\),\(2\) ,-,\(n\) ,依次排列着 \(n\) 个商店.商店里出售的琳琅满目的商品中,每种商品都用一个非负整数 \(va ...
- 洛谷P1755 斐波那契的拆分
题目背景 无 题目描述 已知任意一个正整数都可以拆分为若干个斐波纳契数,现在,让你求出n的拆分方法 输入输出格式 输入格式: 一个数t,表示有t组数据 接下来t行,每行一个数n(如题) 输出格式: t ...
- 洛谷 P4585 [FJOI2015]火星商店问题
(勿看,仅作笔记) bzoj权限题... https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间c ...
- 洛谷$P4585\ [FJOI2015]$火星商店问题 线段树+$trie$树
正解:线段树+$trie$树 解题报告: 传送门$QwQ$ $umm$题目有点儿长我先写下题目大意趴$QwQ$,就说有$n$个初始均为空的集合和$m$次操作,每次操作为向某个集合内加入一个数$x$,或 ...
随机推荐
- Linux安装Memcached服务
环境: CentOS 6.4 libevent-1.4.14b-stable memcached-1.4.21 查看是否安装libevent[root@localhost ~]# rpm -qa |g ...
- Lua windows环境搭建
Lua语言的小巧和功能强大在朋友做的一个项目中得以验证,自己也尝试着了解一下,首先在window系统上搭建一个学习环境. 官网:https://www.lua.org/ 搭建运行环境提供2种方式,源码 ...
- NOI 1.7编程基础之字符串(35题)
01:统计数字字符个数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一行字符,统计出其中数字字符的个数. 输入 一行字符串,总长度不超过255. 输出 ...
- 02SpringMvc_springmvc快速入门小案例(XML版本)
这篇文章中,我们要写一个入门案例,去整体了解整个SpringMVC. 先给出整个项目的结构图:
- js 方法重载
function fun1(arm1) { alert(arm1); } function fun2(arm1, arm2) { alert(arm1 + "_" + arm2); ...
- 【MySQL】Linux MySQL学习记录
1.查看日志存放路径 show variables like 'general_log_file'; 2.查看日志是否开启 show global variables like 'log_bin%'; ...
- 关闭linux centos各种声音
shell报警 #vi /etc/inputrc ================================ set bell-style none 或 echo "set bell- ...
- MTK 平台上如何给 camera 添加一种 preview size
1,首先检查该项目所使用的是哪一颗sensor, 就以OV2659 为例OV2659 是一颗2M 的摄像头,Sensor 吐出的数据分辨率能达到 1600*1200,肯定是支持 1280*720 的分 ...
- [转]仿World Wind构造自己的C#版插件框架——WW插件机制精简改造
很久没自己写东西啦,早该好好总结一下啦!一个大师说过“一个问题不应该被解决两次!”,除了一个好脑筋,再就是要坚持总结. 最近需要搞个系统的插件式框架,我参照World Wind的插件方式构建了个插件框 ...
- matplotlib 的几种风格 练习
〇.准备数据 import numpy as np x = np.linspace(0, 5, 10) y = x ** 2 一.matlab风格的API 1.单图 from pylab import ...