NOIP 2012 普及组 复赛 culture 文化之旅

1.找寻迪杰斯特拉(Dijkstra)算法,难度适中,过程中,找到该题。

2.结合题意,弄懂输入输出样例是关键一步。

3.为了能解决2,纸笔是必须的。

4.读该题样例输入部分,感觉有点象栈,需要相当的记忆。编程,对锻炼大脑,栈的记忆,有很大作用。

5.该题的数据比较水,n<=100,n^2<=10000,所以超时一般不会。

6.该题可以看作有条件约束的最短路径。

7.该题的难想之处,在于将aij=1转化为,两国之间路径为INF。

8.可采用Dijkstra算法,但Floyd算法写起来更简单。

9.因其起点,终点位置未定,故综合考虑,采用Floyd算法。

10.此题需注意的一句:距离为 d 的可双向通行的道路。请注意双向两字。

11.还有一句需注意:aij= 1 表示文化 i 排斥外来文化 j。请注意外来两字。

12.该题需注意,一番数据处理后,还是回归基本的最短路径问题。

附上AC代码,编译环境Dev-C++4.9.9.2

#include <stdio.h>
#define INF 999999
int main(){
    int n,k,m,s,t;
    int c[100+10];
    int a[100+10][100+10];
    int e[100+10][100+10];
    int i,j,q;
    int u,v,w;
    scanf("%d%d%d%d%d",&n,&k,&m,&s,&t);
    for(i=1;i<=n;i++)
        scanf("%d",&c[i]);
    for(i=1;i<=k;i++)
        for(j=1;j<=k;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            if(i==j)
                e[i][j]=0;
            else
                e[i][j]=INF;
        }
    for(i=1;i<=m;i++){
        scanf("%d%d%d",&u,&v,&w);
        e[u][v]=w;
        e[v][u]=w;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            if(i!=j&&a[c[j]][c[i]]==1)
                e[i][j]=INF;
    for(q=1;q<=n;q++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(e[i][j]>e[i][q]+e[q][j])
                    e[i][j]=e[i][q]+e[q][j];
    if(e[s][t]<INF)
        printf("%d\n",e[s][t]);
    else
        printf("-1\n");
    return 0;
}

NOIP 2012 普及组 复赛 culture 文化之旅相关推荐

  1. NOIP 2010 普及组 复赛 sanguo 三国游戏

    NOIP 2010 普及组 复赛 sanguo 三国游戏 1.扫到他人讨论,取第2大值,且小涵必胜. 2.编码,样例通过,提交,只通过了测试点1,6. 3.看了题解,发现是武将配对中,找出配对的第2大 ...

  2. C语言普及组NOIP考试培训,NOIP 2018普及组复赛解题报告来了!

    以下解题思路及选手代码未经官方评测,仅供参考,复赛成绩以官方(CCF)评测结果为准. 主要考察字符串.参考代码: #include int main() { int ans = 0; char ch; ...

  3. c语言普及组复赛题目大全,NOIP 2016普及组复赛C/C++详细题解报告

    第1题 这题很简单,唯一需要注意的是需要判断能不能整除.#include #include #include using namespace std;int main(){ freopen(" ...

  4. NOIP 2016普及组复赛C/C++详细题解报告

    第1题 这题很简单,唯一需要注意的是需要判断能不能整除. #include <iostream> #include <climits> #include <cstdio& ...

  5. 近年NOIP普及组复赛题目的简单讲解

    NOIP2015普及组复赛 整套题都出得不错,难度适中,层次分明 建议同学们在做题的时候还是先在草稿纸上分析,把关键算法的伪代码写出来,然后设计数据进行静态查错,没有问题后再到电脑上敲出代码.实际效率 ...

  6. NOIP 2018 普及组 初赛

    NOIP 2018 普及组 初赛 姐妹篇 NOIP 2018 提高组 初赛 点评 欢迎查阅此文 https://blog.csdn.net/mrcrack/article/details/830489 ...

  7. [NOIP 2011普及组 No.4] 表达式的值

    [NOIP 2011普及组 No.4] 表达式的值 [问题描述] 对于1 位二进制变量定义两种运算: 运算的优先级是: 1. 先计算括号内的,再计算括号外的. 2. "×"运算优先 ...

  8. [NOIP 2010普及组 No.3] 导弹拦截

    [NOIP 2010普及组 No.3] 导弹拦截 [题目描述] 经过11 年的韬光养晦,帝国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截.当工作半径为0 时,则 ...

  9. NOIP2009 普及组 复赛 poly 多项式输出

    NOIP2009 普及组 复赛 poly 多项式输出 //洛谷 p1067 多项式输出 //难度:普及- //考点:输入,输出 ,输出格式按要求进行处理   //适用:小学生 //陷阱:要注意的条件比 ...

最新文章

  1. day6作业--游戏人生
  2. C#调用 Halcon引擎执行代码
  3. skywalking 引起 spring-cloud-gateway 的内存溢出 skywalking的bug
  4. element 搜索匹配_如何在Element-ui中实现一个远程搜索功能
  5. Python 和curl 调用sendcloud发送邮件
  6. 微信小程序支付-付款(Java后台)
  7. SNIP物体检测算法理解
  8. python水仙花数的编程代码-Python 求“水仙花数”的方法和具体代码
  9. 基于51单片机的智能时控开关设计
  10. 生活中的定律——墨菲定律
  11. 突破次元壁垒,让身边的玩偶手办在屏幕上动起来!
  12. APP开发定制需求的常说分销模式,对于分销大家了解多少呢?
  13. office 365 excel 遇到问题 需要修复
  14. 骏马淘金~~网赚不走弯路
  15. js 数组(定义数组,数组长度,数组计算,元素类型转换)
  16. Toast的高级自定义方式-循序渐进带你了解toast
  17. 3CLpro蛋白酶抑制剂,如何靠实力进入新冠病毒诊疗方案
  18. mac MoviePy 合成视频没有声音(亲测)
  19. 分数用计算机怎么分数除法,分数除法怎么算
  20. SERS衬底的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. leetcode279 拉格朗日四平方和定理
  2. tcp 阻塞与非阻塞
  3. ENVI中操作出现Error :array dimensions must be greater than 0错误的解决方法
  4. 计算机网络——网络工程项目
  5. 白光干涉仪(光学3D表面轮廓仪)与台阶仪的区别
  6. onRef在react中的使用
  7. OpenCV图像处理-区域分割-形态学操作应用
  8. 【技巧】Markdown 交叉引用
  9. frequency bins解释
  10. 推荐一款适用于vue的h5富文本编辑器