首页 > 其他分享 >战争游戏

战争游戏

时间:2024-08-11 17:49:09浏览次数:6  
标签:战争 进攻方 游戏 r2 int 100005 ans r1

  • 当我们考虑树的直径时,我们不应该孤立地考察这条链,而应考虑这条链在整棵树中的地位
  • 也就是说,如果树的直径不超过2*r1,进攻方选择树的直径的中点即可覆盖整棵树的节点
  • 尝试证明你感受到的结论,而不是逃避它;相信OI是美的
  • 在经过树的直径判定后,进攻方选择任意一个节点都不可能覆盖树的全部节点,这样只要2*r1<r2,防守方一定可以躲避成功
  • 反过来,如果2r1>=r2,进攻方一定可以把防守方逼入“死角”,只要选择距离为r1的点即可;为什么一定存在这样的点呢?反证法,假设不存在这样的点,不妨设s为根考虑,树的直径就小于2r1
点击查看代码
#include <bits/stdc++.h>
using namespace std;
vector<int>a[100005];
int f[100005],g[100005],ans;
void dp(int n1,int fa)
{
	f[n1]=g[n1]=0;
	for(int i=0;i<a[n1].size();i++)
	{
		if(a[n1][i]!=fa)
		{
			dp(a[n1][i],n1);
			g[n1]=max(g[n1],f[n1]+f[a[n1][i]]+1);
			f[n1]=max(f[a[n1][i]]+1,f[n1]);
		}
	}
	ans=max(ans,g[n1]);
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		int n,s,r1,r2;
		cin>>n>>s>>r1>>r2;
		for(int i=1;i<=n;i++)
		{
			a[i].clear();
		}
		for(int i=1;i<n;i++)
		{
			int u,v;
			cin>>u>>v;
			a[u].push_back(v);
			a[v].push_back(u); 
		}
		ans=0;
		dp(1,0);
		if(2*r1>=ans)
		{
			cout<<"Kangaroo_Splay"<<endl;
		}
		else if(2*r1>=r2)
		{
			cout<<"Kangaroo_Splay"<<endl;
		}
		else
		{
			cout<<"General_Kangaroo"<<endl;
		}
	}
	return 0;
}

标签:战争,进攻方,游戏,r2,int,100005,ans,r1
From: https://www.cnblogs.com/watersail/p/18353680

相关文章

  • python代码实现老鹰抓小鸡游戏
    importpygameimportrandom#初始化pygamepygame.init()#设置屏幕尺寸和颜色WIDTH,HEIGHT=800,600BACKGROUND_COLOR=(255,255,255)EAGLE_COLOR=(0,0,255)CHICK_COLOR=(255,255,0)FPS=30#创建游戏窗口screen=pygame.display.set_mode((WIDTH,......
  • python代码实现挑棍游戏
    importrandomdefprint_sticks(sticks):  """打印当前的棍子状态"""  print("当前棍子状态:",''.join(str(i)foriinrange(1,sticks+1)))defplayer_turn(sticks):  """处理玩家的回合"""  ......
  • 遇到《生化危机2重制版》 amd_ags_x64.dll 错误?别急!简单几步恢复游戏运行
    《生化危机2重制版》(ResidentEvil2Remake)是一款备受玩家喜爱的游戏,但有些玩家在尝试启动游戏时可能会遇到“缺少amd_ags_x64.dll”这样的错误提示。这通常意味着您的计算机上缺少某个必要的动态链接库文件(DLL),或者该文件已损坏。本文将解释这一问题的原因,并提供几种可能的解......
  • IOS-AR-游戏开发入门手册-全-
    IOSAR游戏开发入门手册(全)原文:BeginningiOSARGameDevelopment协议:CCBY-NC-SA4.0一、介绍在本书中,我们将学习如何使用Unity(Unity3D2018,或者更常见的是Unity)的游戏开发软件来创建一个增强现实(或AR)游戏。在这一章中,我们将介绍Unity的下载和安装过程,并了解Un......
  • C语言制作一个简易的猜拳小游戏
    用c语言制作一个简易的猜拳小游戏 ,如果跳出错误在getch()上可以改成_getch()试试即可,新版本vs可能认为getch()是不安全的所以不让用。如果需要有图像的小游戏的话导入easyx,把输出语句修改成画图即可编程画图,记得修改图片位置哦 以下是完整代码,直接CV即可main.c #includ......
  • 贪吃蛇小游戏(c语言实现,巨细详解,附完整代码)
    文章目录c语言简单实现贪吃蛇(巨细详解,附完整代码)==前言==一、游戏效果及功能实现:1、规则:2、基本功能实现:3、技术要点4、实现思路5、游戏效果呈现二、Win32API介绍1、简单介绍2、控制台程序(Console)cmd命令窗口打开方式:控制cmd控制台长宽度命令title命令(命名)3、vs中的控......
  • Java【案例2-5】 剪刀石头布小游戏
    案例介绍:“剪刀石头布”的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序。程序启动后会随机生成1~3的随机数,分别代表剪刀、石头和布,玩家通过键盘输入剪刀、石头和布与电脑进行5轮的游戏,赢的次数多的一方为赢家。若五局皆为平局,则最终结果判为平局。案例思路: ......
  • 消灭星星游戏程序设计【连载十】——小星星的残影轨迹
    消灭星星游戏程序设计【连载十】——小星星的残影轨迹大家每次都可以在页面中下载本节内容的实现代码,一步一步从简单开始,逐步完成游戏的各种功能,如果大家有任何问题也欢迎留言交流。游戏整体效果展示:1、本节要达到的效果这一节课,我们需要添加小星星的残影轨迹效果,也......
  • 《永劫无间》游戏崩溃提示缺少steam_api.dll文件怎么处理?永劫无间游戏弹窗“找不到ste
    在玩《永劫无间》时,如果遇到游戏崩溃并提示缺少steam_api.dll文件,这是一个常见的问题。可以尝试重新安装Steam平台,或者从可靠渠道获取该文件并放置到正确的游戏目录下,以恢复游戏的正常运行。本篇将为大家带来《永劫无间》游戏崩溃提示缺少steam_api.dll文件修复方法的内容,感兴......
  • 《英雄联盟》游戏闪退提示“base.dll文件损坏”怎么修复?英雄联盟游戏崩溃弹窗base.dll
    在《英雄联盟》遇到因“base.dll文件损坏”而导致的游戏闪退问题时,可以先尝试重新安装游戏,这能覆盖可能损坏的文件。还可以使用系统的文件修复工具,对该文件进行检测和修复,或者从可靠来源获取该文件进行替换。本篇将为大家带来《英雄联盟》游戏闪退提示“base.dll文件损坏”修复......