답안 #423534

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
423534 2021-06-11T08:58:40 Z Amylopectin Hotspot (NOI17_hotspot) C++14
9 / 100
2 ms 592 KB
#include <iostream>
#include <stdio.h>
#include <vector>
#include <queue>
using namespace std;
const int mxn = 10010,mxi = 1e9 + 10;
queue <int> qu;
vector <int> pa[mxn] = {};
int di[mxn] = {},u[mxn] = {};
double psu[mxn] = {},npa[mxn] = {};
int main()
{
    int i,j,n,m,f,t,cdi,fdi,fn,cn,q,k,stn,enn,su;
    double cma,df,dt;
    scanf("%d %d",&n,&m);
    for(i=0; i<m; i++)
    {
        scanf("%d %d",&f,&t);
        pa[f].push_back(t);
        pa[t].push_back(f);
    }
    scanf("%d",&q);
    for(i=0; i<q; i++)
    {
        scanf("%d %d",&stn,&enn);
        qu.push(stn);
        for(j=0; j<n; j++)
        {
            di[j] = mxi;
            npa[j] = 0;
        }
        npa[stn] = 1;
        di[stn] = 0;
        while(!qu.empty())
        {
            cn = qu.front();
            if(cn == enn)
            {
                break;
            }
            qu.pop();
            for(j=0; j<pa[cn].size(); j++)
            {
                fn = pa[cn][j];
                if(di[fn] < di[cn]+1)
                {
                    continue;
                }
                if(npa[fn] == 0)
                {
                    npa[fn] += npa[cn];
                    di[fn] = di[cn] + 1;
                    qu.push(fn);
                }
                else
                {
                    npa[fn] += npa[cn];
                }
            }
        }
        while(!qu.empty())
        {
            qu.pop();
        }
        qu.push(enn);
        dt = npa[enn];
        while(!qu.empty())
        {
            cn = qu.front();
            df = npa[fn];
            psu[cn] += df / dt;
//            if(cn == enn)
//            {
//                break;
//            }
            qu.pop();
            for(j=0; j<pa[cn].size(); j++)
            {
                fn = pa[cn][j];
                if(di[fn] + 1 == di[cn] && u[fn] != i+1)
                {
                    u[fn] = i+1;
                    qu.push(fn);
                }
//                if(di[fn] < di[cn]+1)
//                {
//                    continue;
//                }
//                if(npa[fn] == 0)
//                {
//                    npa[fn] += npa[cn];
//                    di[fn] = di[cn] + 1;
//                    qu.push(fn);
//                }
//                else
//                {
//                    npa[fn] += npa[cn];
//                }
            }
        }
    }
    cma = -1;
    cn = -1;
    for(i=0; i<n; i++)
    {
        if(psu[i] > cma)
        {
            cn = i;
            cma = psu[i];
        }
    }
    printf("%d\n",cn);
    return 0;
}

Compilation message

hotspot.cpp: In function 'int main()':
hotspot.cpp:42:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |             for(j=0; j<pa[cn].size(); j++)
      |                      ~^~~~~~~~~~~~~~
hotspot.cpp:77:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   77 |             for(j=0; j<pa[cn].size(); j++)
      |                      ~^~~~~~~~~~~~~~
hotspot.cpp:13:21: warning: unused variable 'cdi' [-Wunused-variable]
   13 |     int i,j,n,m,f,t,cdi,fdi,fn,cn,q,k,stn,enn,su;
      |                     ^~~
hotspot.cpp:13:25: warning: unused variable 'fdi' [-Wunused-variable]
   13 |     int i,j,n,m,f,t,cdi,fdi,fn,cn,q,k,stn,enn,su;
      |                         ^~~
hotspot.cpp:13:37: warning: unused variable 'k' [-Wunused-variable]
   13 |     int i,j,n,m,f,t,cdi,fdi,fn,cn,q,k,stn,enn,su;
      |                                     ^
hotspot.cpp:13:47: warning: unused variable 'su' [-Wunused-variable]
   13 |     int i,j,n,m,f,t,cdi,fdi,fn,cn,q,k,stn,enn,su;
      |                                               ^~
hotspot.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     scanf("%d %d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~~
hotspot.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         scanf("%d %d",&f,&t);
      |         ~~~~~^~~~~~~~~~~~~~~
hotspot.cpp:22:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |     scanf("%d",&q);
      |     ~~~~~^~~~~~~~~
hotspot.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |         scanf("%d %d",&stn,&enn);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
8 Correct 1 ms 460 KB Output is correct
9 Correct 1 ms 588 KB Output is correct
10 Correct 1 ms 588 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 1 ms 540 KB Output is correct
13 Correct 1 ms 460 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
8 Correct 1 ms 532 KB Output is correct
9 Correct 1 ms 592 KB Output is correct
10 Correct 1 ms 588 KB Output is correct
11 Correct 2 ms 588 KB Output is correct
12 Correct 1 ms 460 KB Output is correct
13 Incorrect 1 ms 460 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
8 Correct 1 ms 460 KB Output is correct
9 Correct 1 ms 588 KB Output is correct
10 Correct 1 ms 588 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 1 ms 540 KB Output is correct
13 Correct 1 ms 460 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 532 KB Output is correct
16 Correct 1 ms 592 KB Output is correct
17 Correct 1 ms 588 KB Output is correct
18 Correct 2 ms 588 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Incorrect 1 ms 460 KB Output isn't correct
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
8 Correct 1 ms 460 KB Output is correct
9 Correct 1 ms 588 KB Output is correct
10 Correct 1 ms 588 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 1 ms 540 KB Output is correct
13 Correct 1 ms 460 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 2 ms 588 KB Output is correct
16 Incorrect 1 ms 588 KB Output isn't correct
17 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 1 ms 588 KB Output is correct
3 Correct 1 ms 588 KB Output is correct
4 Correct 1 ms 536 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 1 ms 532 KB Output is correct
7 Correct 1 ms 460 KB Output is correct
8 Correct 1 ms 460 KB Output is correct
9 Correct 1 ms 588 KB Output is correct
10 Correct 1 ms 588 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 1 ms 540 KB Output is correct
13 Correct 1 ms 460 KB Output is correct
14 Correct 1 ms 460 KB Output is correct
15 Correct 1 ms 532 KB Output is correct
16 Correct 1 ms 592 KB Output is correct
17 Correct 1 ms 588 KB Output is correct
18 Correct 2 ms 588 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Incorrect 1 ms 460 KB Output isn't correct
21 Halted 0 ms 0 KB -