zoukankan      html  css  js  c++  java
  • 【11.13 测试】Tourist Attractions

     

    题解:考场上打得一手好暴力。DFS骗得40分

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdlib>
    #include<queue>
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=1502;
    const int M=1125752;
    int n;
    char s[N];
    struct node{
        int to;
        int next;
    }e[M*2];
    int head[N],cnt,vis[N];
    void add(int x,int y){
        e[++cnt].to=y;
        e[cnt].next=head[x];
        head[x]=cnt;
    }
    ll ans;
    void dfs(int now,int sum){
        if(sum==4) { ans++; return; }
        for(int i=head[now];i;i=e[i].next){
            int v=e[i].to;
            if(vis[v]==1) continue;
            vis[v]=1; dfs(v,sum+1); vis[v]=0;
        }
    }
    int main(){
        freopen("tour.in","r",stdin);
        freopen("tour.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s
    ",s+1);
            for(int j=1;j<=n;j++)
                if(s[j]=='1')  add(i,j);        
        }
        for(int i=1;i<=n;i++) 
            { vis[i]=1; dfs(i,1); vis[i]=0; }
        printf("%lld",ans);
        return 0;
    }

     emmm好像……70分(我希望我是70分)用“度”来思考。

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdlib>
    #include<queue>
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=302;
    const int M=1125752;
    int n,a[N][N],du[N],ans;
    char s[N];
    int main(){
        freopen("tour.in","r",stdin);
        freopen("tour.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%s",s+1);
            for(int j=1;j<=n;j++)
                if(s[j]=='0') a[i][j]=0;
                else a[i][j]=1,du[i]++;
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i==j) continue;
                if(!a[i][j]) continue;
                for(int k=1;k<=n;k++){
                    if( i==k || j==k ) continue;
                    if(!a[j][k]) continue;
                    ans+=du[k]-1;
                    if(a[k][i]) ans--;
                }
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    从浏览器输入URL到页面渲染的过程
    安全分析的几个好的工具网站的使用
    从一次渗透谈到linux如何反弹shell
    python 进行抓包嗅探
    MYSQL的索引和常见函数
    一篇博客搞定redis基础
    新型横向移动工具原理分析、代码分析、优缺点以及检测方案
    Java反序列化漏洞的挖掘、攻击与防御
    关于Memcached反射型DRDoS攻击分析
    spark未授权RCE漏洞
  • 原文地址:https://www.cnblogs.com/wuhu-JJJ/p/11849063.html
Copyright © 2011-2022 走看看