标签:tac hat log desc using eof -128 tput with
学长讲座讲过的,代码也讲过了,然而,当时上课没来听,听代码的时候也一脸o((⊙﹏⊙))o
我的妈呀,语文不好是硬伤,看题意看了好久好久好久(死一死)。。。
数学+思维题,代码懂了,也能写出来,但是还是有一点不懂,明天继续。
感谢我的队友不嫌弃我是他的猪队友(可能他心里已经骂了无数次我是猪队友了_(:з」∠)_ )
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 2021 Accepted Submission(s): 956
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<string> 5 #include<queue> 6 #include<algorithm> 7 #include<stack> 8 #include<cstring> 9 #include<vector> 10 #include<list> 11 #include<bitset> 12 #include<set> 13 #include<map> 14 #include<time.h> 15 using namespace std; 16 typedef long long ll; 17 const int maxn=100000+10; 18 const int mod=1e9+7; 19 map<int,int>mp1,mp2; 20 map<int,int>::iterator it1,it2; 21 int a[maxn],b[maxn],vis[maxn]; 22 int n,m; 23 void solve(int n,int *f,map<int,int> &mp) 24 { 25 memset(vis,0,sizeof(vis)); 26 int j,k; 27 for(int i=0;i<n;i++) 28 { 29 j=i,k=0; 30 while(!vis[j]) 31 { 32 k++; 33 vis[j]=1; 34 j=f[j]; 35 } 36 if(k) 37 mp[k]++; 38 } 39 } 40 int main() 41 { 42 int kase=0; 43 while(scanf("%d%d",&n,&m)!=EOF) 44 { 45 for(int i=0;i<n;i++) 46 scanf("%d",&a[i]); 47 for(int i=0;i<m;i++) 48 scanf("%d",&b[i]); 49 mp1.clear(); 50 mp2.clear(); 51 solve(n,a,mp1); 52 solve(m,b,mp2); 53 ll ans=1; 54 for(it1=mp1.begin();it1!=mp1.end();it1++) 55 { 56 ll cnt=0,x=it1->first,t=it1->second; 57 for(it2=mp2.begin();it2!=mp2.end();it2++) 58 { 59 int y=it2->first,num=it2->second; 60 if(x%y==0)cnt=(cnt+y*num)%mod; 61 } 62 for(int i=1;i<=t;i++) 63 ans=(ans*cnt)%mod; 64 } 65 printf("Case #%d: %lld\n",++kase,ans); 66 } 67 return 0; 68 }
学长的代码比我队友的快_(:з」∠)_
溜了溜了。不想喝拿铁咖啡。
加油加油_(:з」∠)_
HDU6038-Function-数学+思维-2017多校Team01
标签:tac hat log desc using eof -128 tput with
原文地址:http://www.cnblogs.com/ZERO-/p/7788221.html