题目描述:

小Van的CP最喜欢玩与OI有关的游戏啦~小Van为了讨好她,于是冥思苦想,终于创造了一个新游戏。
下面是小Van的OI游戏规则:
给定一个无向连通图,有 $N$ 个节点,编号为 $0$ ~ $N-1$ 。图里的每一条边都有一个正整数权值,边权在 $1$ ~ $9$ 之间。
要求从图里删掉某些边(有可能 $0$ 条),使得剩下的图满足以下两个条件:
1) 剩下的图是一棵树,有 $N-1$ 条边。
2) 对于所有 $v (0<v<N)$ , $0$ 到 $v$ 的最短路(也就是树中唯一路径长度)和原图中的最短路长度相同。
最终要报出有多少种不同的删法可以满足上述条件。(两种删法不同当且仅当存在两个点,
一种删法删完之后这两个点之间存在边而另外一种删法不存在。)
由于答案有可能非常大,良心的小Van只需要答案膜 $1,000,000,007$ 的结果。
后记: 然而这游戏太高难度了,小Van的CP做不出来因此很不开心!
她认为小Van在故意刁难她,于是她与小Van分手了。。。
不过对于精通OI的你来说,这不过是小菜一碟啦!

时间效率:$O(n^{2})$

以下代码:

#include<bits/stdc++.h>
#define il inline
#define _(d) while(d(isdigit(ch=getchar())))
using namespace std;
const int N=55,inf=1e9,p=1e9+7;
char s[N];bool vis[N];
int n,a[N][N],d[N],f[N],ans=1;
il int read(){int x,f=1;char ch;_(!)ch=='-'?f=-1:f;x=ch^48;_()x=(x<<1)+(x<<3)+(ch^48);return f*x;
}
int main()
{n=read();for(int i=1;i<=n;i++){scanf(" %s",s+1);for(int j=1;j<=n;j++){if(s[j]=='0'&&i!=j)a[i][j]=inf;else a[i][j]=s[j]-'0';}}vis[1]=1;for(int i=1;i<=n;i++)d[i]=a[1][i],f[i]=1;d[0]=inf+1;for(int i=1;i<=n;i++){int x=0;for(int j=1;j<=n;j++){if(!vis[j]&&d[j]<d[x])x=j;}vis[x]=1;for(int j=1;j<=n;j++){if(x==j)continue;int w=d[x]+a[x][j];if(w<d[j])d[j]=w,f[j]=1;else if(w==d[j])f[j]++;}}for(int i=1;i<=n;i++)ans=1ll*f[i]*ans%p;printf("%d\n",ans);return 0;
}

View Code

转载于:https://www.cnblogs.com/Jessie-/p/10461422.html

bzoj5056:OI游戏相关推荐

  1. bzoj 5056: OI游戏

    5056: OI游戏 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 204  Solved: 162 [Submit][Status][Discuss] ...

  2. 牛客OI赛制测试赛2 F :假的数学游戏

    题目传送门 斯特林公式 代码: #include<bits/stdc++.h> using namespace std;const double PI=3.1415926; typedef ...

  3. 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  4. 我的OI生涯 第六章

    开学了,但是我们并没有像一个正常的高二学生一样坐在教室里接受调研考试的洗礼. 暑假作业这种东西早已被甩在一旁,可以想象回去补文化课时该有多么狼狈. 大王给我们制定了周密的计划,每周两次测试,加上蔡老师 ...

  5. 【牛客 - 210A】游戏(思维,脑洞)

    题干: BLUESKY007,fengxunling和dreagonm三个人发现了一个像素游戏,这款神奇的游戏每次会生成一个nxm的网格,其中每一个格子都被随机染色为R,G,B三种颜色之一,每次都可以 ...

  6. 博弈论(一):Nim游戏

    从今天开始,我将会用一系列文章介绍博弈论(Game Theory)的基本知识,以OI中可能用得着的为主.当然,我对博弈论的理解还很肤浅,而且我写东西的风格向来都是"个人心得"而非& ...

  7. OI生涯回忆录(Part6:至高一NOIP考试结束)

    (廿六)高中文化课初体验 这个暑假是十分轻松且惬意的(虽然由于国赛的原因只有二十几天),我爷爷住院调养于是我经常捧着笔记本到医院待着玩游戏.我下了个盗版的实况13,画面比实况8好到不知道哪里去了,细致 ...

  8. OI生涯回忆录(Part7:至高一湖南集训Day3)

    (卅一)联赛惨案 NOIP结束了,自然我是要回班上课的. 王晓光这边说着尽量在沟通让我和李佳实尽快脱产,然而并不知道什么时候能办完.... 转过来这个周中就开始了各种山寨数据的测试,学军自己出的.杭二 ...

  9. OI 生涯回忆录 《Pilgrimage》

    前言 于 NOI2020 后写下本文. 本文简单提及了在写作时尚能回忆起来的,在我的 OI 生涯中对我的影响重大的人.事.比赛等. 写作本文,旨在在回忆允许的范围内,对 OI 生涯进行一定程度上的梳理 ...

  10. OI生涯回忆录(Part3:至初三NOIP发成绩)

    (十一)抓包 我这个人的说话方式从APIO回来就改变了,回到班里和其他同学说话时,我突然感觉仿佛不是我自己了. 由于和邹雨恒住在一个寝室,我染上了邹雨恒的许多口癖,比如"太神了"& ...

最新文章

  1. android中的回调
  2. 员工未回复群消息被罚200元,企业:符合公司规章制度
  3. tomcat如何增大并发_Tomcat 7最大并发连接数的正确修改方法
  4. c#中out、ref和params的用法与区别
  5. 苹果iOS 10.3.1修复博通Wi-Fi芯片重大安全漏洞
  6. python方向键控制角色_python方向键控制上下左右代码
  7. 【AI算法模型评测】2 如何评价多标签分类模型的好坏?
  8. 自己写好记的Oracle的 Group By 、 Group By Rollup和Group By Cube基础
  9. java sqlhelper_SQLHelper 代码细节
  10. 浅析精益生产中改善活动的8个步骤
  11. 【python初级】os.listdir返回目录中包含的文件以及文件夹的列表
  12. 为什么amd显卡便宜却买的人少_为什么不推荐人选择AMD?
  13. corpus iweb_「As is depicted」和「As depicted」哪个对?
  14. DIYGW-UI-PHP是一款基于thinkphp framework和 element admin开发而成的前后端分离系统
  15. 一文读懂两台计算机之间是如何通信的
  16. S32K144的FLASH中的SDK函数(FLASH_DRV_EraseSector)不能正常执行
  17. 机房环境监控系统品牌-深圳计通
  18. Android Studio安装并运行初始程序显示‘Hello World‘。
  19. C++语言篇 字符串及字符数组练习
  20. JavaScript 伪数组和数组

热门文章

  1. Ajax 加载数据 练习 自我有些迷糊了,写的大概请谅解 ^ _ ^
  2. iOS开发UI篇—控制器的创建
  3. POST 方式上传图片
  4. Django中的 返回json对象的方式
  5. ubuntu下安装 Source insight
  6. 算法总结之 将单链表的每K个节点之间逆序
  7. linux安装启动svn
  8. 用微软的压力测试工具进行拒绝服务攻击
  9. P3388 【模板】割点(割顶)
  10. centos6.5 mysql忘记登入密码