北京市商汤科技开发有限公司面向青少年研发了一款智能伴游机器人-- AI 伴游小精灵。一经推出,深受孩子们的喜爱,可爱又机智的小精灵会想出很多有趣的小游戏来启迪孩子们思考。今天,小精灵给你提出了一个神奇又有趣的多米诺骨牌小游戏。

你手上有一副神奇的多米诺骨牌,数量有 nn个,编号为 1 ~n。它们之间存在着 n−1 个单向推倒关系,即推倒 x 会导致 y 也被推倒,而且这样的关系都满足 x<y,且每组关系中的 y不会重复。

一开始只有 1号骨牌不会被其他骨牌推倒,所以你只需要推倒 1 号骨牌就可以推倒所有的骨牌。

小精灵给你提的问题是:如果我们允许去掉 2个骨牌,那么在最坏情况下你最少需要推倒几个骨牌才能使所有骨牌倒下?

输入格式

第一行输入一个整数 n,表示有 n个多米诺骨牌。

接下来有 n-1 行的输入,每行输入两个整数 x,y,表示x推倒 会导致 y也被推倒。

输出格式

输出一个整数表示去掉两个骨牌之后,最坏情况下你最少需要推倒几个骨牌才能使所有骨牌倒下。

数据规模

n<=5 x 10^3

样例输入复制

7
1 2
1 3
1 5
2 4
4 7
4 6

样例输出复制

5

题解:在去掉两个牌之前,推一次一号牌就可以把所有牌推到,去掉的两个牌一定是与其他牌关联次数最多的那两个点(假设这两个点与其它点的给关联次数分别为x1,x2),
去点这两个点之后,那么与这两个点存在关系的点就被孤立了,需要单独推一次,
因此,加上要推的一号牌,去掉两个点之后最多可能要推1+x1+x2次,
还有另外两种特殊情况要考虑一下:
1、如果次数最多的两个牌有一个为一号牌,次数要减一。
2、如果次数最多的两个点存在联系,次数要减一
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int pos;
int cnt;
}a[]; bool cmp(node a,node b)
{
return a.cnt>b.cnt;
}
int num[],vis[][];
int main()
{
int n,x,y;
cin>>n;
for(int i=;i<=n;i++)//初始化,使点的号数与下标统一
a[i].pos=i;
for(int i=;i<n-;i++)
{
cin>>x>>y;
vis[x][y]=;
a[x].cnt++;
}
sort(a+,a+n-,cmp);
int x1,x2,ans;
x1=a[].cnt;
x2=a[].cnt;
ans=+x1+x2;
if(vis[a[].pos][a[].pos]==)//关联次数最多的两个牌恰好存在推到的关系
ans--;
if(a[].pos==||a[].pos==)//因为一号牌不会被任何牌推倒,如果拿走了一号牌,次数要减一
ans--;
cout<<ans<<endl;
return ;
}

AI 伴游小精灵的更多相关文章

  1. 2019 计蒜之道 初赛 第一场 商汤的AI伴游小精灵

    https://nanti.jisuanke.com/t/39260 根据题意我们可以知道  这是一个树 我们只需要找到出度最大的两个点就好了 如果包含根节点的话要-- 两个点相邻的话也要-- 数据很 ...

  2. 游戏AI系列内容 咋样才能做个有意思的AI呢

    游戏AI系列内容 咋样才能做个有意思的AI呢 写在前面的话 怪物AI怎么才能做的比较有意思.其实这个命题有点大,我作为一个仅仅进入游戏行业两年接触怪物AI还不到一年的程序员来说,来谈这个话题,我想我是 ...

  3. 马里奥AI实现方式探索 ——神经网络+增强学习

    [TOC] 马里奥AI实现方式探索 --神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典 ...

  4. 普通程序员如何转向AI方向

    眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 本文的目的是给出一个简单的,平 ...

  5. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  6. MySQL Workbench建表时 PK NN UQ BIN UN ZF AI 的含义

    [转自网络]https://my.oschina.net/cers/blog/292191 PK Belongs to primary key 作为主键 NN Not Null 非空 UQ Uniqu ...

  7. 【AI开发第一步】微软认知服务API应用

    目录 介绍 API分类 使用‘视觉’API完成的Demo 点击直接看干货 介绍 从3月份Google家的阿尔法狗打败韩国围棋冠军选手李世石,到之后微软Build2016大会宣布的“智能机器人”战略.种 ...

  8. 扎克伯格开发的家用AI: Jarvis

    扎克伯格本周二在facebook发布了一篇文章,介绍自己利用个人时间开发的一套在自己家里使用的AI系统,并将它命名为Jarvis,对!就是电影钢铁侠里的AI助手Jarvis. 文章并没有讲细节的技术c ...

  9. 趣说游戏AI开发:对状态机的褒扬和批判

    0x00 前言 因为临近年关工作繁忙,已经有一段时间没有更新博客了.到了元旦终于有时间来写点东西,既是积累也是分享.如题目所示,本文要来聊一聊在游戏开发中经常会涉及到的话题--游戏AI.设计游戏AI的 ...

随机推荐

  1. Windows驱动开发-IoCompleteRequest

    IoCompleteRequest 例程表示调用者的已经完成了对指定I/O请求的所有处理操作,并且向I/O管理器返回指定的IRP报文. //函数原型 VOID IoCompleteRequest( I ...

  2. LinkedList学习:API调用、栈、队列实现

    参考的博客 Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 如果你想详细的区了解容器知识以及本文讲的LinkedList,我推荐你去看这篇博客和这个做个的容器系列 Lin ...

  3. tomcat重载web项目,debug

    Reloading Context with name [/testCookie] is completed 加载上下文名称[ / ]完成testcookie //start九月 05, 2017 9 ...

  4. struts2--action请求与Action类

    1.action:代表一个sturts2的请求: 2.Action类:能够处理Struts2请求的类: --属性名必须遵守与JavaBean属性名相同的命名规则: --属性的类型可以使任意类型.从字符 ...

  5. [Codeforces #608 div2]1271C Shawarma Tent

    Description The map of the capital of Berland can be viewed on the infinite coordinate plane. Each p ...

  6. Day2-C-迷宫问题 -POJ3984

    定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...

  7. SpringBoo-Thymeleaf

    SpringBoo-Thymeleaf SpringBoo-Thymeleaf简介 ​ SpringBoot并不推荐使用JSP,它推荐我们使用模板引擎Thymeleaf,它与Velocity.Free ...

  8. Springboot配置文件内容加密

      使用的是jasypt-spring-boot-starter,具体介绍可以参考 https://gitee.com/yangziyi2017/Jasypt-Spring-Boot   引入依赖 & ...

  9. vue 路由过渡效果(1)

    1.html界面 <transition name="slide"> <router-view></router-view> </tran ...

  10. 并行执行 Job【转】

    有时,我们希望能同时运行多个 Pod,提高 Job 的执行效率.这个可以通过 parallelism 设置. 这里我们将并行的 Pod 数量设置为 2,实践一下: Job 一共启动了两个 Pod,而且 ...