1. 程式人生 > >hdu 6016 Count the Sheep

hdu 6016 Count the Sheep

判斷 題意 cond ans spa air clas int ret

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\n",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 */

hdu 6016 Count the Sheep