问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c++难题,求大神写出代码。(需要重点防护的城市的定义使去掉这座城市会...

发布网友 发布时间:2024-04-06 00:01

我来回答

2个回答

热心网友 时间:2024-08-08 04:55

之前写过一篇博客(话说是OUC OnlineJudge的吗?  斜眼笑.jpg)网页链接

#include <iostream>
using namespace std;
int *Links(int **city, int numsSize)   //这个函数里新增了一个数组,用来储存 哪个城市需要重点防护
{
    static int *a = new int[numsSize + 1];
    for (int i = 0; i < numsSize + 1; i++)
        a[i] = 0;
    int temp;
    for (int i = 1; i < numsSize + 1; i++)
    {
        int counts = 0;
        for (int j = 1; j < numsSize + 1; j++)
        {
            if (city[i][j] == 1)
            {
                counts++;
                  temp = j;
            }
        }
        if (counts > 1)
            continue;
        else
        {
            a[temp] = 1;
        }
    }
    return a;
}
int CountDangerCitys(int *link, int numsSize)   //数一下 link里新建的那个数组里需要重点保护城市的个数
{
    int counts = 0;
    for (int i = 1; i < numsSize + 1; i++)
        if (link[i] == 1)
            counts++;
    return counts;
}
 
int CountCitys(int numsSize)   //这里用来输入城市的信息
{
    int **City = new int *[numsSize + 1];
    for (int i = 0; i < numsSize + 1; i++)
        City[i] = new int[numsSize + 1];
    for (int i = 0; i < numsSize + 1; i++)
        for (int j = 0; j < numsSize + 1; j++)
            City[i][j] = 0;
    ////////////////
    int head_num;
    bool Ishead = true;
    while (true)
            //这个就是记录城市连接信息 的那个表
        {
            char temp;
            temp = cin.get();
            if (temp == '\n')
            {
                Ishead = true;
                continue;
            }
            if (temp > 48 && temp <= 57)
            {
                if (!Ishead)
                {
                    City[head_num][temp - 48] = 1;
                    City[temp - 48][head_num] = 1;
                    continue;
                }
                else if (Ishead)
                {
                    head_num = temp - 48;
                    Ishead = false;
                }
            }
            if (temp == '0')
                break;
        }
    int *link = Links(City, numsSize);
      //调用函数  往上翻
        int result = CountDangerCitys(link, numsSize);
    return result;
}
 
int main()
{
    int n = 1;
    int count = 0;
    //int a[100];
    //int t = 0;
    while (n != 0)
    {
        cin >> n;
        if (n != 0)
            count++;
        getchar();
        if (n == 0)
            break;
        int result;
        result = CountCitys(n);
        cout << result << "\n";
        //a[t] = CountCitys(n);
        //t++;
    }
    //for (int i = 0; i < count; i++)
    // cout << a[i] << "\n";
 
    return 0;
}

热心网友 时间:2024-08-08 04:59

双连通分量缩点,求桥
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 哪里可以下载《仙境之桥》的吖? ...我中奖了让我去网站领,让我输入身份证和银行卡号等等,最后让我交钱... ...了银行卡,我要解绑他让我提供身份证银行卡号,还要手持身份证拍照... 锯骨机辅助轮发热原因? 锯骨机烧了电机还转吗 襄垣县北关村属于哪个社区! 坚持把教师队伍建设作为基础工作是办好我国教育事业的什么 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 吃什么对眼睛视力有好处对眼睛视力有好处的食物有哪些 美国电影从林小屋里面最后的那个女主角叫什么名字?还演过什么电影?雷神... 游戏王,对方发动旋风,对象为我方盖卡的活死人的呼唤,我连锁发动活死人... 游戏王对方盖卡时,能马上刮掉吗 游戏王混沌力量 操作说明 怎么盖卡? 游戏王速攻魔法卡能破坏反击陷阱卡吗?来高手哦 游戏王我召唤地帝爆对方一张盖放的卡,此时对方能连锁发动那张卡吗?那... 游戏王中,若用破坏对方一张盖卡,那张盖卡可以发动并实施效果吗? 游戏王中 我发动旋风破坏 对手的盖卡 结果我要破坏的是对方的旋风 结果... 工程管理与工程造价的区别是什么啊? 徐州金鼎恒立液压件有限公司怎么样? 四川省组织部部长叫什么 烧烤要准备什么东西烧烤要准备哪些东西 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 对反幂指三是什么意思? 梦见火烧死人什么意思梦见火烧死人含义 2008年10月17日7点性格怎么样 不是自己的手机号可以办信用卡吗安全吗 做梦梦到爸爸和妈妈吵架是什么兆头 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 热水袋可以烘干衣服吗? 热水袋敷背衣服湿了 刚买的电热水袋漏水,浸透衣服,身上都湿了,要紧吗 热水袋被淋湿了,还能用吗 我男朋友20岁了,是在工地上上班,就是粉墙的,挺辛苦的,但是他总是半途而... 地久天长(王源,王景春主演电影)什么时候上映 7小时零30分钟用数字怎么记? 怎么写,求解答,谢谢 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 吃紧急避孕药后为什么吃vc 1999年农历8月14日出生是什么星座? 怎样认识新中国人文地理学发展的阶段性特征?