2019.3.22
1.最大公约数
1 int euc(int a,int b) 2 { 3 return a%b==0?b:euc(b,a%b); 4 } 5 int main() 6 { 7 int a,b; 8 while(cin>>a>>b) 9 printf("%d\n",euc(a,b)); 10 return 0; 11 }
最大公约数*最小公倍数==a*b
2.康托展开
1 //CSU1828 2 #include<bits/stdc++.h> 3 #define mem(a) memset(a,0,sizeof(a)) 4 #define LL long long 5 #define ull unsigned long long 6 #define inf 0x3f3f3f3f 7 const int N=5e8; 8 using namespace std; 9 int f[10]; 10 void init() 11 { 12 f[1]=1; 13 for(int i=2;i<10;i++) 14 f[i]=f[i-1]*i; 15 } 16 int main() 17 { 18 int n; 19 char s[10]; 20 init(); 21 cin>>n; 22 while(n--) 23 { 24 cin>>s; 25 int ans=0; 26 for(int i=0;i<9;i++) 27 { 28 int temp=0; 29 for(int j=i+1;j<9;j++) 30 if(s[i]>s[j])temp++; 31 ans+=temp*f[9-i-1]; 32 } 33 cout<<ans+1<<endl; 34 } 35 return 0; 36 }
3.贪心
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<stdlib.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #include<string> 10 #include<set> 11 #include<list> 12 #include<cctype> 13 #include<sstream> 14 #define mem(a) memset(a,0,sizeof(a)) 15 #define LL long long 16 #define ull unsigned long long 17 #define inf 0x3f3f3f3f 18 const int N=5e8; 19 using namespace std; 20 char f[2005],g[2005]; 21 int n; 22 int cp(int x,int y) 23 { 24 int t=0; 25 while(t<=n) 26 { 27 if(f[x]<g[y]) 28 return 1; 29 else if(f[x]>g[y]) 30 return 2; 31 x++,y++,t++; 32 } 33 return 0; 34 } 35 int main() 36 { 37 cin>>n; 38 for(int i=1,j=n;i<=n;i++,j--) 39 { 40 cin>>f[i]; 41 g[j]=f[i]; 42 } 43 int t=n; 44 int x=1,y=1,ans=0; 45 while(t--) 46 { 47 int k=cp(x,y); 48 if(k==1||k==0) 49 { 50 cout<<f[x]; 51 x++; 52 } 53 else if(k==2) 54 { 55 cout<<g[y]; 56 y++; 57 } 58 ans++; 59 if(ans%80==0) 60 cout<<endl; 61 } 62 return 0; 63 }
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<stdlib.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #include<string> 10 #include<set> 11 #include<list> 12 #include<cctype> 13 #include<sstream> 14 #define mem(a) memset(a,0,sizeof(a)) 15 #define LL long long 16 #define ull unsigned long long 17 #define inf 0x3f3f3f3f 18 const int N=5e8; 19 using namespace std; 20 int f[2005],g[2005]; 21 int n,r; 22 int main() 23 { 24 while(cin>>r>>n&&r!=-1&&n!=-1) 25 { 26 for(int i=0;i<n;i++) 27 cin>>f[i]; 28 int ans=0; 29 sort(f,f+n); 30 int now=0; 31 int u=now+1; 32 while(now<n) 33 { 34 35 if(f[u]-f[now]<=r&&u-n<2) 36 u++; 37 else 38 { 39 int t=u; 40 while(f[t]-f[u-1]<=r) 41 t++; 42 ans++; 43 u=t+1; 44 now=t; 45 } 46 /* if(u>n) 47 { 48 if(f[n-1]-f[n-2]>r) 49 { 50 ans++; 51 } 52 break; 53 }*/ 54 } 55 cout<<ans<<endl; 56 } 57 return 0; 58 }

浙公网安备 33010602011771号