ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

攻击火星(题解)

2021-09-25 13:03:12  阅读:149  来源: 互联网

标签:题目 攻击 题解 度为 外星人 构建 火星


题目描述

一群外星人将要攻击火星。

火星的地图是一个n个点的无向图。这伙外星人将按照如下方法入侵,先攻击度为0的点(相当于从图中删除掉它),然后是度为1的点,依此类推直到度为n-1的点。

所有的点度统计是动态统计的。(一个点删掉后,与之相连的点的点度都会-1)。外星人攻击度为某个数的点时是同时攻击的。

你需要设计这个图的边的方案来使得未被攻击的点最多。

输入格式

输入文件包含一行一个整数n。

输出格式

一行一个整数,表示最多的最后未被攻击的点。

输入输出样例

输入 #1复制

3

输出 #1复制

1

说明/提示

【样例解释】

①-②-③,这样首先删掉度为1的①和③,此时②度数为0,不会被删去。

【数据范围】

对于20%的数据1<=n<=10

对于100%的数据1<=n<=50000

【题目来源】

tinylic改编

编者寄语:这道题只看代码很简单,最重要的是学会构造的思路!

 分析:

这题一看题目,我们就要构造无向图,看看有没有什么解题的好方法

  • 首先,我们按照题目构建的方式,构建一个n为3的无向图
  • 然后,根据题目,构建一个n为5的点
  •    
  • 怎样才能阻止这样悲惨的事情发生呢?
  • 看下图(构建一个n为7的点)
  1.  先把牺牲品和全部好好的点连起来
  2. 再把全部线连起来
  3. 再把牺牲品干掉
  4.  

这样,就保证最大啦(如果n为1,结果也是0,要特判)

完整AC代码 

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	cout<<max(0,n-2);
	return 0;
}

标签:题目,攻击,题解,度为,外星人,构建,火星
来源: https://blog.csdn.net/Phrvth/article/details/120470104

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有