多校第八场:图论出度

HDU 4948

这题比赛的时候遗憾了,我看了这道题,然后觉得挺简单的。

刚开始一看题上,想到的就是拓扑排序,然后脑子想啊想……感觉就是拓扑排序的逆序,然后发现挺水的……

因为说了要想发展某个城市的话,就必须有另一个城市作为它发展的前提,即城市u->w这样连边,表示要想发展城市w,前提是u已经是发展过的城市了。那这样的话不是很简单嘛。

即统计出出度最多的就是第一个要发展的城市了,因为u->w这样连边可以看出算出出度最多的依次从大到小排序就行了。

哎呀,不过可惜了,因为看见没人交这题,然后也不敢把自己想的告诉队友,然后自己也没敲……然后错过进第一版的机会了真是被第一梯队的带错路被坑了……

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<queue>
#include<set>
#include<cmath>
#include<bitset>
#define mem(a,b) memset(a,b,sizeof(a))
#define lson i<<1,l,mid
#define rson i<<1|1,mid+1,r
#define llson j<<1,l,mid
#define rrson j<<1|1,mid+1,r
#define INF 0x7fffffff
#define maxn 11010
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
char s[500][505];
struct abc
{
    int i,out;
    bool operator<(const abc &a)const
    {
        return out>a.out;
    }
}a[501];
int main()
{
    //freopen("1.txt","r",stdin);
    int n,i,j;
    while(scanf("%d",&n)&&n)
    {
        for(i=0;i<n;i++)
            scanf("%s",s[i]),a[i].i=i,a[i].out=0;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                if(s[i][j]=='1')
                    a[i].out++;
        sort(a,a+n);
        printf("%d",a[0].i+1);
        for(i=1;i<n;i++)
            printf(" %d",a[i].i+1);
        puts("");
    }
    return 0;
}

多校第八场:图论出度,布布扣,bubuko.com

时间: 2024-12-23 01:28:31

多校第八场:图论出度的相关文章

2014 HDU多校弟八场H题 【找规律把】

看了解题报告,发现看不懂 QAQ 比较简单的解释是这样的: 可以先暴力下达标,然后会发现当前数 和 上一个数 的差值是一个 固定值, 而且等于当前数与i(第i个数)的商, 于是没有规律的部分暴力解决,有规律的套公式 //#pragma comment(linker, "/STACK:16777216") //for c++ Compiler #include <stdio.h> #include <iostream> #include <cstring&g

2016多校第八场 hdu5821 Ball

http://acm.hdu.edu.cn/showproblem.php?pid=5821 水题的精华..... 有n个球,给出目前的颜色序列a和目标颜色序列b,再给出m个可以重新安排球顺序的球区间,这m个区间是不得重新安排区间顺序,问能否达到目标的颜色序列 这题是那道给出一个字典,再给出某一个字符串S,S只要能经过重排得到字典中任意一个字符串T就输出yes的进化版. 这里是for b[i] a[i]==b[i],所以可以通过映射关系重新编号b为1-n,再重新编号a为1~n使得关系变成for

2018湖南多校第八场 训练日志

solved 3 (7/22) 前缀和乱搞的题看成是模拟退火求最小费马点,很烦. C Permutations (子序列) D Travel Frog (dp + 公式) H Appositive Body (中心对称的结论) <qj> 题意:4维空间里n个点,是否能够中心对称. 首先利用所有点求出中心点的坐标,然后对于每个点,求出对应点的坐标,在set中查找是否存在. 所有的点都有对应点,那么存在. #include <cstdio> #include <iostream&

HDU暑假多校第八场J-Taotao Picks Apples

一.题意 给定一个序列,之后给出若干个修改,修改的内容为在原序列的基础上,将某一位元素的值改成给定的值<每次修改相互独立,不保存修改后的结果>.之后询问,在选择第一位元素的情况下,最长递增子序列的长度是多少. 二.题解 考虑不经修改的情况,应当设dp[i]为选取当前位情况下的最长递增子串的长度.则对于这道题,应当认为对于修改a为b,设l_pos为a左边最大的元素的位置,r_pos为a右边大于max(b,r_pos)的元素的位置.则有ans = dp[1] - dp[l_pos] + 1 + d

航电多校第八场-A-Character Encoding

题目描述 In computer science, a character is a letter, a digit, a punctuation mark or some other similar symbol. Since computers can only process numbers, number codes are used to represent characters, which is known as character encoding. A character en

2019 杭电多校 第八场

2019 Multi-University Training Contest 8 补题链接:2019 Multi-University Training Contest 8 1003 Acesrc and Good Numbers HDU 6659 题意 定义 \(f(d, n)\) 为十进制下 \(1\) 到 \(n\) 所有数的数位中数字 \(d\) 出现的次数.给定 \(x\),找出最大的 \(n(n \le x)\) 满足 \(f(d, n) = n\). 题解 看到了一个神仙做法. 显

2014多校联合-第八场

1001:2048 很明显,一开始看错题了...sad 这题目我感觉挺卡时间的... dp[i][j]:在选择2^i的时候,选择的和为j*2^i到(j+1)*2^i-1时候的情况. #include <iostream> #include<stdio.h> #include<vector> #include<queue> #include<stack> #include<string.h> #include<algorithm&

2014多校第十场1004 || HDU 4974 A simple water problem

题目链接 题意 : n支队伍,每场两个队伍表演,有可能两个队伍都得一分,也可能其中一个队伍一分,也可能都是0分,每个队伍将参加的场次得到的分数加起来,给你每个队伍最终得分,让你计算至少表演了几场. 思路 : ans = max(maxx,(sum+1)/2) :其实想想就可以,如果所有得分中最大值没有和的一半大,那就是队伍中一半一半对打,否则的话最大的那个就都包了. 1 #include <cstdio> 2 #include <cstring> 3 #include <st

多校第六场 HDU 4927 JAVA大数类

题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1?ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊,现在对组合算比较什么了-- import java.io.*; import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Sca