NOIP2012普及组 (四年后的)解题报告 -SilverN
本章施工仍未完成
现在的时间是3.17 0:28,我困得要死
本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤。
尝试了用floyd写T4,终于大功告成AC后,看到别人的解题报告说fl能过只是因为测试数据范围小。
好像主要有三种解法,fl,dij,dfs
dfs暂时弃,dij写到现在还没完成,先把fl的放上来。
等攻下T4,再施工前面三道题
T4-Floyd:
读完数据以后,只要把文化不兼容的城市的路都堵上,就可以用floyd了
可怜我之前堵路无方,写了一大堆判定条件还没见效……
AC代码如下
1 /*NOIP普及组2012 t4 culture*/ 2 //根据多个解题报告所说,floyd算法能过只是因为数据范围小 3 //我们需要dij或者dfs 4 #include<iostream> 5 #include<algorithm> 6 #include<cmath> 7 using namespace std; 8 const int inf=10000000; 9 int c[5000];//文明[i]的文化 10 int fl[300][300];//文化拒绝 11 int mp[300][300];//图 12 //int DFS(){ 13 14 //} 15 int main(){ 16 int i,j,n,k,m,s,t; 17 // freopen("culture.in","r",stdin); 18 // freopen("culture.out","w",stdout); 19 //in 20 scanf("%d%d%d%d%d",&n,&k,&m,&s,&t); 21 for(i=1;i<=n;i++){ 22 scanf("%d",&c[i]); 23 } 24 for(i=1;i<=n;i++) 25 for(j=1;j<=n;j++){ 26 if(i!=j)mp[i][j]=inf;//预处理 27 } 28 for(i=1;i<=k;i++) 29 for(j=1;j<=k;j++) 30 scanf("%d",&fl[i][j]);//读入文化兼容情况 31 32 for(i=1;i<=m;i++){ 33 int u,v,d; 34 scanf("%d%d%d",&u,&v,&d); 35 mp[u][v]=min(mp[u][v],d);//两座城市间若有多条道路,记录最短的即可 36 mp[v][u]=mp[u][v];//双向图 37 } 38 for(i=1;i<=n;i++) 39 for(j=1;j<=n;j++){ 40 if(fl[c[i]][c[j]]==1)mp[j][i]=inf;//如果文化不兼容,相当于道路不通 41 //刚开始mp[j][i]误打成mp[i][j],费了半天时间查错 42 //这部分原本想边读边处理,但是发现会影响到双向距离处理,只好单拿出来了 43 } 44 // 45 //floyd 不能走的路之前都处理成inf了,直接floyd就行 46 for(k=1;k<=n;k++) 47 for(i=1;i<=n;i++) 48 for(j=1;j<=n;j++){ 49 if(mp[i][k]+mp[k][j]<mp[i][j]){ 50 mp[i][j]=mp[i][k]+mp[k][j]; 51 } 52 } 53 // 54 if(mp[s][t]==inf)printf("-1"); 55 else printf("%d",mp[s][t]); 56 // fclose(stdin); 57 // fclose(stdout); 58 return 0; 59 60 }
转载于:https://www.cnblogs.com/AwesomeOrion/p/5285834.html
NOIP2012普及组 (四年后的)解题报告 -SilverN相关推荐
- NOIP2008 普及组T1 ISBN号码 解题报告-S.B.S.
题目描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx-xxxxx-x",其中符号"-&qu ...
- 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝
[题目链接] ybt 1958:[12NOIP普及组]寻宝 洛谷 P1076 [NOIP2012 普及组] 寻宝 OpenJudge NOI 1.12 06:寻宝 [题目考点] 1. 模拟 2. 循环 ...
- 信息学奥赛一本通 1098:质因数分解 | 1957:【12NOIP普及组】质因数分解 | OpenJudge NOI 1.5 43 | 洛谷 P1075 [NOIP2012 普及组] 质因数分解
[题目链接] ybt 1098:质因数分解 ybt 1957:[12NOIP普及组]质因数分解 OpenJudge NOI 1.5 43:质因数分解 洛谷 P1075 [NOIP2012 普及组] 质 ...
- NOIP2012 普及组 T4 文化之旅
文化之旅 (NOIP2012 普及组 T4 ) 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文 ...
- 洛谷——P1075 [NOIP2012 普及组] 质因数分解
P1075 [NOIP2012 普及组] 质因数分解 题目描述 已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数. 输入格式 一个正整数nn. 输出格式 一个正整数pp,即较大的那个质 ...
- 洛谷P1077 [NOIP2012 普及组] 摆花
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 mm 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 nn 种花,从 11 到 nn 标号.为了在门口展出更多种花,规定第 i ...
- P1941 [NOIP2014 提高组] 飞扬的小鸟——解题报告
一.题目链接: P1941 [NOIP2014 提高组] 飞扬的小鸟 二.题目大意 游戏界面是一个长为nnn,高为mmm的二维平面,其中有kkk个管道(忽略管道的宽度).小鸟始终在游戏界面内移动.小鸟 ...
- nowcoder 提高组模拟赛 选择题 解题报告
选择题 链接: https://www.nowcoder.com/acm/contest/178/B 来源:牛客网 题目描述 有一道选择题,有 \(a,b,c,d\) 四个选项. 现在有 \(n\) ...
- NOIP2014提高组A.石头剪刀布(解题报告)
[题目描述] 在<生活大爆炸>第二季第 8 集中出现了一种石头剪刀布的升级版游戏.升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势: 斯波克:<星际迷航>主角之一. ...
最新文章
- linux pidof 进程名称查进程id
- Collection 和 Collections区别
- Java反转单链表(code)
- 为了帮助卖家成交,闲鱼工程师做了些什么?
- pat乙级相当于什么水平_雅思6.5是什么水平?相当于托福多少分?
- linux 开启关闭tomcat服务器端口,linux系统安装、启动和关闭tomcat
- 成绩排序(信息学奥赛一本通-T1178)
- 【ElasticSearch】Es 源码之 RestController 源码解读
- 单片机并口应用实验c语言,用51单片机编写一个并行口实验
- [转载] python 时间sleep() 的方法
- 谷歌浏览器 flash_Chrome 76测试版默认禁用Flash 用户可避开更多付费页面
- 孙鑫VC学习笔记:第十三讲 (四) 生成可串行化的类
- 为什么开发移动端web不使用jQuery
- TF卡和SD卡的区别
- 游戏服务器是干什么的(大话、浅析)
- 微信自动回复(新年快乐)
- “华为杯”研究生数学建模竞赛2020年-【华为杯】B题:降低汽油精制过程中的辛烷值损失模型(附获奖论文)
- 【React-music项目问题】The AudioContext was not allowed to start. It must be resumed (or created) after a
- 【JS】正则表达式。以vue词法分析、句法分析为例
- 想要空手夺白刃?看看用户裂变的四板斧
热门文章
- 清空、重设input框
- Mpmovieplayercontroller 黑屏
- 关于微信客服消息 40001和45015 模板消息 errcode:40037 遇到的自己挖的坑
- 苹果降价背后的代工厂之殇
- 141 springmvc中 转发 与 重定向
- Exchange Server 2016管理系列课件53.DAG管理之设置滞后数据库副本
- Python--练习及面试题
- 《数据结构与算法 C语言版》—— 2.5上机实验
- React Native调用原生模块
- check $m2_home environment variable and mvn script match