zoukankan      html  css  js  c++  java
  • hdu 6016 Count the Sheep

    BestCoder Round #92 B题

    (今天突然想起来这道题在做的时候卡了cin 而且似乎也有爆int的坑 就拿出来记录一下

    ((这道题能用来测试输入输出外挂的性能

    中文题意不解释

    比赛的时候好多人是爆搜的四层

    不过还是有更优雅的做法

    那就是把每只羊的link数记录下来

    然后根据每次数羊的时候的顺序

    母羊A 公羊B 母羊C 公羊D

    按照这样处理 然后把最后的ans*2就可以了~

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 int main()
     9 {
    10     int T;
    11     scanf("%d",&T);
    12     while(T--)
    13     {
    14         int n,m,k;
    15         scanf("%d%d%d",&n,&m,&k);
    16         vector<int>a(n+1,0),b(m+1,0);
    17         vector<pii>link;
    18         for(int i=0;i<k;i++)
    19         {
    20             int x,y;
    21             scanf("%d%d",&x,&y);
    22             a[x]++,b[y]++;
    23             link.push_back({x,y});
    24         }
    25         ll ans=0;
    26         for(auto i:link)
    27         {
    28             ll tmp=1ll*(a[i.first]-1)*(b[i.second]-1);
    29             //防止出现负数的判断
    30             if(tmp<0) continue;
    31             ans+=tmp;
    32         }
    33         printf("%lld
    ",ans*2);
    34     }
    35     return 0;
    36 }
    37 /*
    38 
    39 3
    40 2 2 4
    41 1 1
    42 1 2
    43 2 1
    44 2 2
    45 3 1 3
    46 1 1
    47 2 1
    48 3 1
    49 3 3 3
    50 1 1
    51 2 1
    52 2 2
    53 
    54 */

    顺便贴一下6015的代码

     1 #include<bits/stdc++.h>
     2 #define cl(a,b) memset(a,b,sizeof(a))
     3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl
     4 using namespace std;
     5 typedef long long ll;
     6 typedef pair<int,int> pii;
     7 
     8 map<string,pii>mp;
     9 
    10 int main()
    11 {
    12     int T;
    13     scanf("%d",&T);
    14     while(T--)
    15     {
    16         int n;
    17         scanf("%d",&n);
    18         mp.clear();
    19         for(int i=0;i<n;i++)
    20         {
    21             string str;
    22             int value;
    23             cin>>str>>value;
    24             mp[str].second=max(value,mp[str].second);
    25             if(mp[str].first<mp[str].second)
    26             {
    27                 swap(mp[str].first,mp[str].second);
    28             }
    29         }
    30         int ans=0;
    31         for(auto iter:mp)
    32         {
    33             ans+=((iter.second).first+(iter.second).second);
    34         }
    35         printf("%d
    ",ans);
    36     }
    37     return 0;
    38 }
    39 /*
    40 
    41 2
    42 5
    43 english 1
    44 english 2
    45 english 3
    46 math 10
    47 cook 100
    48 2
    49 a 1
    50 a 2
    51 
    52 */
  • 相关阅读:
    c# where(泛型类型约束)
    jQuery自定义插件
    jQuery插件定义
    SQL中merge into用法
    .net framework 4.5安装失败
    jQuery操作Form表单元素
    在WebAPI使用Session
    大数据量数据库设计与优化方案(SQL优化)
    修改NUGET包默认存放位置
    C#知识体系(一) 常用的LInq 与lambda表达式
  • 原文地址:https://www.cnblogs.com/general10/p/7067595.html
Copyright © 2011-2022 走看看