zoukankan      html  css  js  c++  java
  • JZOJ 1238. 自行车比赛

    题目

    Description

    自行车赛在一个很大的地方举行,有N个镇,用1到N编号,镇与镇之间有M条单行道相连,起点设在镇1,终点设在镇2。
    问从起点到终点一共有多少种不同的路线。两条路线只要不使用完全相同的道路就被认为是不同的。
     

    Input

    第一行两个整数:N和M(1<=N<=10000,1<=M<=100000),表示镇的数量和道路的数量。
    接下来M行,每行包含两个不同的整数A和B,表示有一条从镇A到镇B的单行道。
    两个镇之间有可能不止一条路连接。

    Output

    输出不同路线的数量,如果答案超过9位,只需输出最后9位数字。如果有无穷多的路线,输出“inf”。
     

    Sample Input

    输入1:
    6 7 
    1 3 
    1 4 
    3 2 
    4 2 
    5 6 
    6 5 
    3 4 
    
    输入2:
    6 8 
    1 3 
    1 4 
    3 2 
    4 2 
    5 6 
    6 5 
    3 4 
    4 3 
    
    输入3:
    31 60 
    1 3 
    1 3 
    3 4 
    3 4 
    4 5 
    4 5 
    5 6 
    5 6 
    6 7 
    6 7 
    … 
    … 
    … 
    28 29 
    28 29 
    29 30 
    29 30 
    30 31 
    30 31 
    31 2 
    31 2 
    

    Sample Output

    输出1:
    3
    
    输出2:
    inf
    
    输出3:
    073741824 
     

    Data Constraint

    分析

     

    • tarjan+拓扑,然后没有环的数据?
    • 直接拓扑?打爆了然后80不知道哪里错了
    • 记忆化搜索过了?

    代码

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<vector>
     4 #include<cstring>
     5 #define LL long long
     6 using namespace std;
     7 const LL N=1e4;
     8 const LL MOD=1e9;
     9 LL n,m,f[N+10];
    10 bool flag;
    11 vector<LL>g[N+10];
    12 LL dfs(LL u)
    13 {
    14     if(f[u]>=0) return f[u];
    15     f[u]=0;
    16     for(LL i=0;i<g[u].size();i++)
    17     {
    18         LL v=g[u][i];
    19         f[u]+=dfs(v);
    20         if(f[u]>=MOD) f[u]%=MOD,flag=1;
    21     }
    22     return f[u];
    23 }
    24 int main()
    25 {
    26     scanf("%lld%lld",&n,&m);
    27     for(LL i=1,u,v;i<=m;i++) scanf("%lld%lld",&u,&v),g[v].push_back(u);
    28     memset(f,-1,sizeof(f));
    29     f[1]=1;
    30     dfs(2);
    31     if(!flag){printf("%lld",f[2]);return 0;}
    32     LL x=1e8;
    33     while(x)
    34     {
    35         printf("%lld",f[2]/x);
    36         f[2]%=x;
    37         x/=10;
    38     }
    39     return 0;
    40 }

     

  • 相关阅读:
    request.getParameter() 、 request.getInputStream()和request.getReader() 使用体会
    HTTP之Content-Length
    关于spring3中No Session found for current thread!and Transaction的配置和管理(转)
    Java数据类型和MySql数据类型对应一览
    Spring MVC 解读——View,ViewResolver(转)
    LeetCode 441. Arranging Coins
    LeetCode 415. Add Strings
    LeetCode 400. Nth Digit
    LeetCode 367. Valid Perfect Square
    LeetCode 326. Power of Three
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/11333058.html
Copyright © 2011-2022 走看看