#include<stdio.h> int count0(int k) { int sum=0; while(k!=0) { k=k/5; sum+=k; } return sum; } int main() { int n,i,j,x,k; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&x); j=count0(x); printf("%d\n",j); } return 0; }
2 3 1 1 2 3 2 1 2 2 3
1 0
简单dfs 胡乱搞搞
#include<iostream> #include<algorithm> #include<memory.h> #include<cstdio> #include<stack> using namespace std; const int maxn=1000002; const int maxm=100002; int dfn[maxn],low[maxn],n,m,indx,cnt,inStack[maxn],f[maxn][12]; stack<int>s; void dfs(int u) { if(!dfn[u]) { dfn[u]=1; } for(int i=1;i<=f[u][0];i++) { int v=f[u][i]; if(!dfn[v]) { dfs(v); } } } int main() { int i,j,k,a,b,t; cin>>t; while(t--) { scanf("%d%d",&n,&m); memset(dfn,0,sizeof(dfn)); memset(inStack,0,sizeof(inStack)); memset(low,0,sizeof(low)); memset(f,0,sizeof(f)); indx=0,cnt=0; for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); f[a][++f[a][0]]=b; f[b][++f[b][0]]=a; } for(i=1;i<=n;i++) { if(!dfn[i]) { cnt++; dfs(i); } } cout<<cnt-1<<endl; } return 0; }
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cmath> #include<cstdlib> using namespace std; int n,t; double a[10002],ans; int main() { int i,j; cin>>t; while(t--) { cin>>n; ans=0.0; if(n>=10000) n=10000; for(i=(n)/2+1;i<=n;i++) { ans+=1.0/i; } printf("%.2f\n",ans); } return 0; }
2 1 2
1.0000 1.1667
简单概率DP。。。。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cmath> #include<cstdlib> using namespace std; const int maxn=100001; double dp[maxn]; int n,t,vis[maxn]; int main() { cin>>t; while(t--) { int i,j; cin>>n; for(i=0;i<=n+6;i++)dp[i]=0.0; for(int i=n-1;i>=0;i--) { for(int j=1;j<=6;j++) { if(i+j<=n) dp[i]+=(1.0/6)*dp[i+j]; else break; } dp[i]+=1.0; } printf("%.4lf\n",dp[0]); } return 0; }
1 3 3
2 2
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cmath> #include<cstdlib> using namespace std; int n,m,t; int main() { cin>>t; while(t--) { int x,y; cin>>n>>m; if(n<=m) { x=n/2+1; if(n%2==1) { y=m-x+1; } else { y=n-x+1; } }else { y=(m+1)/2; if(m%2==1) { x=n-y+1; }else { x=m-y+1; } } cout<<x<<" "<<y<<endl; } return 0; }