图论中的sb错误集锦

  1.floyd——jzyzoj1213  最优乘车

    策略非常简单,就是建立权值为1的边就好了,然而处理数据的时候翻了个sb错误:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 using namespace std;
 6 #define MAX 510
 7 int m,n,a[510][510],queue[51000];
 8 string s[110];
 9 void work()
10 {
11     cin>>m>>n;
12     for (int i=0;i<=m;i++)
13         getline(cin,s[i]);
14     for (int i=1;i<=m;i++)
15     {
16         int len=0;
17         for (int j=0;j<s[i].size();j++)
18             if (s[i][j]!=‘ ‘)
19                 queue[++len]=s[i][j]-‘0‘;
20         for (int j=1;j<=len;j++)
21             for (int k=j+1;k<=len;k++)
22                 a[queue[j]][queue[k]]=1;
23     }
24 }
25
26 void floyd()
27 {
28     for (int k=1;k<=n;k++)
29         for (int i=1;i<=n;i++)
30             for (int j=1;j<=n;j++)
31                 if (a[i][j]>a[i][k]+a[k][j])
32                     a[i][j]=a[i][k]+a[k][j];
33 }
34 int main()
35 {
36     //freopen("add.in","r",stdin);
37     //freopen("add.out","w",stdout);
38     memset(a,10,sizeof(a));
39     work();
40     floyd();
41     if (a[1][n]>MAX)    cout<<"NO"<<endl;
42     else    cout<<a[1][n]-1<<endl;
43     return 0;
44 }

错误代码

    因为读入的是string,所以当string中出现大于9的数时是无法处理的。其实正确的处理方法加一个while即可

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 using namespace std;
 6 #define MAX 510
 7 int m,n,a[510][510],queue[51000];
 8 string s[110];
 9 void work()
10 {
11     cin>>m>>n;
12     for (int i=0;i<=m;i++)
13         getline(cin,s[i]);
14     for (int i=1;i<=m;i++)
15     {
16         int len=0;
17         int lens=s[i].size();
18         for (int j=0;j<lens;j++)
19             if (s[i][j]!=‘ ‘)
20             {
21                 int num=0;
22                 while(s[i][j]!=‘ ‘&&j<lens)
23                 {
24                     num*=10;
25                     num+=s[i][j]-‘0‘;
26                     j++;
27                 }
28                 j--;
29                 queue[++len]=num;
30             }
31         for (int j=1;j<=len;j++)
32             for (int k=j+1;k<=len;k++)
33                 a[queue[j]][queue[k]]=1;
34     }
35 }
36
37 void floyd()
38 {
39     for (int k=1;k<=n;k++)
40         for (int i=1;i<=n;i++)
41             for (int j=1;j<=n;j++)
42                 if (a[i][j]>a[i][k]+a[k][j])
43                     a[i][j]=a[i][k]+a[k][j];
44 }
45 int main()
46 {
47     //freopen("add.in","r",stdin);
48     //freopen("add.out","w",stdout);
49     memset(a,1,sizeof(a));
50     work();
51     floyd();
52     if (a[1][n]>MAX)    cout<<"NO"<<endl;
53     else    cout<<a[1][n]-1<<endl;
54     return 0;
55 }

AC代码

  2.floyd——jzyzoj1214  bessie come home

    floyd的模板题,啊啊啊啊为什么我做一道题就错一道题。

    注意双向边还是单向边啊啊啊啊啊

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int n,a[56][56],len;
char st,en;
void init()
{
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>st>>en>>len;
        //cout<<st<<‘ ‘<<en<<‘ ‘<<len<<endl;
        int j,k;
        if (st<=‘Z‘)
            j=st-‘A‘+1;
        else
            j=st-‘a‘+27;
        if (en<=‘Z‘)
            k=en-‘A‘+1;
        else
            k=en-‘a‘+27;
        //cout<<j<<‘ ‘<<k<<endl;
        a[j][k]=min(len,a[j][k]);
    }
}

void floyd()
{
    for (int i=1;i<=52;i++)
        a[i][i]=0;
    for (int k=1;k<=52;k++)
        for (int i=1;i<=52;i++)
            for (int j=1;j<=52;j++)
                if (a[i][j]>a[i][k]+a[j][k])
                    a[i][j]=a[i][k]+a[j][k];
}

int work()
{
    int st,minn=999999999;
    for (int i=1;i<=25;i++)
        if (a[i][26]<minn)
        {
            minn=a[i][26];
            st=i;
        }
    return st;
}

int main()
{
    ios::sync_with_stdio(false);
    //freopen("add.in","r",stdin);
    //freopen("add.out","w",stdout);
    memset(a,1,sizeof(a));
    init();
    floyd();
    int ans=work();
    char answer;
    if (ans<26)
        answer=char(ans+‘A‘-1);
    else
        answer=char(ans-27+‘a‘);
    cout<<answer<<‘ ‘<<a[ans][26]<<endl;
    return 0;
}

错误代码

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int n,a[56][56],len;
 7 char st,en;
 8 void init()
 9 {
10     cin>>n;
11     for (int i=1;i<=n;i++)
12     {
13         cin>>st>>en>>len;
14         //cout<<st<<‘ ‘<<en<<‘ ‘<<len<<endl;
15         int j,k;
16         if (st<=‘Z‘)
17             j=st-‘A‘+1;
18         else
19             j=st-‘a‘+27;
20         if (en<=‘Z‘)
21             k=en-‘A‘+1;
22         else
23             k=en-‘a‘+27;
24         //cout<<j<<‘ ‘<<k<<endl;
25         a[j][k]=min(len,a[j][k]);
26         a[k][j]=a[j][k];
27     }
28 }
29
30 void floyd()
31 {
32     for (int i=1;i<=52;i++)
33         a[i][i]=0;
34     for (int k=1;k<=52;k++)
35         for (int i=1;i<=52;i++)
36             for (int j=1;j<=52;j++)
37                 if (a[i][j]>a[i][k]+a[j][k])
38                     a[i][j]=a[i][k]+a[j][k];
39 }
40
41 int work()
42 {
43     int st,minn=999999999;
44     for (int i=1;i<=25;i++)
45         if (a[i][26]<minn)
46         {
47             minn=a[i][26];
48             st=i;
49         }
50     return st;
51 }
52
53 int main()
54 {
55     ios::sync_with_stdio(false);
56     //freopen("add.in","r",stdin);
57     //freopen("add.out","w",stdout);
58     memset(a,1,sizeof(a));
59     init();
60     floyd();
61     int ans=work();
62     char answer;
63     answer=char(ans+‘A‘-1);
64     cout<<answer<<‘ ‘<<a[ans][26]<<endl;
65     return 0;
66 }

AC代码

时间: 2024-10-23 11:47:38

图论中的sb错误集锦的相关文章

sb错误集锦

我说这个只是精简版(想的起来的)你们怕不怕…… 各种特定时间的手滑/XXX写错就不计算了 1.线段树忘记pushdown…… 2.dfs序上建XXX时总忘记使用dfs序…… 3.trie的内存池要开3000000……其实开2000000有时也不是不能过题 4.int fac[MAXN];unsigned long long x;fac[++l]=x;论开-Wall的重要性 未完待续……

AIX 5.3 Install Oracle 10g RAC 错误集锦--9i RAC present

AIX 5.3 Install Oracle 10g RAC 错误集锦--9i RAC Present 系统环境: 操作系统: AIX 5300-08 集群软件: CRS 10.2.0.1 数据库:   Oracle 10.2.0.1                     系统架构图 故障现象: 解决方法: [[email protected] tmp]# cat /etc/oratab # This file is used by ORACLE utilities.  It is creat

iOS:项目中疑难Crash问题集锦

项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash地址了.对于线上App运行时的Crash收集也有很多好用的第三方工具,具有代表性的就是Crashlytics,通过打包时上传dSYM文件,收集到的Crash就可以解析为可读的格式了. 尽管Crashlytics功能已经很强大了,统计出来的Crash信息也足够详细,还是会有一些难缠的问题,例如程序直接

drp错误集锦---“Cannot return from outside a function or method”

好久都不动的项目,今天打开项目突然是红色感叹号,具体错误表现为: 也就是说,现在MyEclipse已经不识别在JSP页面中使用的return方法了(而且不止一处这样的警告),那怎么办?????顿时闹钟一片混乱,心想好不容装完系统,怎么项目还闹脾气呢. 网上有网友提供的解决方法是"将return去掉",但去掉return之后,提交表单的那些就无法进行.所以在坚持之下找到并试验了下面的两种方法: §打开MyEclipse的Windows-->>preferences -->

web前端常犯错误集锦

html部分 1.head中不加doctype的类型,会导致浏览器兼容性的问题 2. id用数字来表示 3.文件编码与meta规定的charset不一致 Mysql部分 Mysql两个常见引擎 ,区别 1.MyIsAM 我的理解是作为只读表,则使用该引擎,该引擎对查询有优化,并且改善了索引树的空间利用率:该引擎没有事务的控制:不太容易发生死锁 2.InnoDB 事务表引擎,保证事务的完整性:如果该表更新频繁,则使用该表引擎:如果数据量巨大,也应该使用该表引擎,并且有自己的缓冲池: 容易发生死锁

(转)Hadoop之常见错误集锦

Hadoop之常见错误集锦 下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:                vi打开libexec/hadoop-config.sh中,查找JAVA_HOME is not set and could not be found,找到后在这一行if [[ -z $JAVA_HOME ]]; then的前面添加如下语句即可:        export JAVA_HOME=

Python花式错误集锦(长期更新)

Python是一门灵活的,有意思的,用途广泛的语言.近些年来,收到越来越多的重视.也有越来越多的人来学习这门语言. 于是,问题来了,对于初学者,往往在写代码的过程中,出现这样或那样的错误,导致程序运行报错.这些错误或简单,或复杂,或诡异,或神奇,要么令人抓耳挠腮,要么让人恼羞成怒,要么让人难以忘怀.但是,在学习编程的过程中,就是这些错误让我们成长,让我们逐渐从采坑再爬坑的过程中,感受到编程的魅力. 到底有哪些错误呢,请看DE8UG给你带来的"Python花式错误集锦",如果你遇到了Py

Tensorflow 错误集锦

文章目录 参考文献 本文记录笔者在Tensorflow使用上的一些错误的集锦,方便后来人迅速查阅解决问题. 我是留白. 我是留白. CreateSession still waiting for response from worker: /job:worker/replica:0/task:0 123456789101112131415 2018-12-05 22:18:24.565303: I tensorflow/core/distributed_runtime/rpc/grpc_chan

Spring中的一个错误:使用Resources时报错(The annotation @Resources is disallowed for this location)

在学习Spring的过程中遇到一个错误:在使用注解@resources的时候提示:The annotation @Resources is disallowed for this location 后来来在学问Java网友的时候解决了. 原来的代码是这样的: 1 package com.show.biz; 2 3 import javax.annotation.Resources; 4 5 import com.show.biz.UserBiz; 6 import com.show.dao.Us