zoukankan      html  css  js  c++  java
  • ZROI 菜鸡互啄杯 III

    2018.8.14
    Siyuan 小姐姐系列.png

    讲题解以前,先膜拜一下 Siyuan 小姐姐家族的人
    题面 0814.pdf

    A.

    数学水题
    by sshwy & xry

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll n,t,mx;
    
    int main(){scanf("%lld",&t);
    	for(ll i=1;i<=t;i++){scanf("%lld",&n);
    		mx=-1;
    		ll x,y,z;
    		//a==2
    		if(n%2==0){
    			x=n/2;
    			ll n2=n-x;
    			if(n%3==0){//b==3
    				y=n/3,z=n-x-y;
    				if(n%z==0)mx=max(mx,x*y*z);
    			}
    			if(n%4==0){//b==4
    				y=n/4,z=n-x-y;
    				if(n%z==0)mx=max(mx,x*y*z);
    			}
    		}		
    		//a==3
    		if(n%3==0){x=n/3,mx=max(mx,x*x*x);
    		}
    		printf("%lld
    ",mx);
    	}
    	return 0;
    }
    

    B.

    乘法原理
    by GavinZHeng & sshwy

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll t,n,m,b[200];
    int main(){scanf("%lld",&t);
    	while(t--){scanf("%lld%lld",&n,&m);
    		for(ll i=1;i<=n;i++)scanf("%*d%lld",&b[i]),b[i]++;
    		sort(b+1,b+n+1);
    		ll ans=1,i;
    		for(i=1;i<=n;i++){if(ans*b[i]>m)break;
    			ans*=b[i];
    			
    		}
    		printf("%lld
    ",i-1);
    	}
    	return 0;
    }
    

    C.

    矩阵加速(加分块?)
    by sry

    #include<bits/stdc++.h>
    using namespace std;
    const long long mod=1e9+7;
    struct matrix{long long r,c,m[5][5];
    	matrix operator *(matrix t)const{
    		matrix tmp;
    		tmp.r=r,tmp.c=t.c;
    		for(int i=1;i<=tmp.r;i++){for(int j=1;j<=tmp.c;j++){tmp.m[i][j]=0;
    			}
    		}
    		for(int i=1;i<=r;i++){for(int j=1;j<=t.c;j++){for(int k=1;k<=c;k++){tmp.m[i][j]+=m[i][k]*t.m[k][j];
    					tmp.m[i][j]%=mod;
    				}
    			}
    		}
    		return tmp;
    	}
    };
    matrix mt,z;
    void printmat(matrix x){for(int i=1;i<=x.r;i++){for(int j=1;j<=x.c;j++)cout<<x.m[i][j]<<" ";
    		puts("");
    	}
    }
    matrix POW(matrix mat,long long p){
    	//cout<<"POW
    ";
    	//printmat(mat);
    	//cout<<"^"<<p<<"
    ";
    	matrix tmp;
    	tmp.r=mat.r,tmp.c=mat.c;
    	for(int i=1;i<=tmp.r;i++){for(int j=1;j<=tmp.c;j++){if(i==j)tmp.m[i][j]=1;
    			else tmp.m[i][j]=0;
    		}
    	}
    	while(p){if(p%2)tmp=tmp*mat;
    		mat=mat*mat,p/=2;
    	}
    	//cout<<"TMP:
    ";
    	//printmat(tmp);
    	return tmp;
    }
    long long T,a,b,c,d,p,n,l,r,v;
    int main(){scanf("%lld",&T);
    	while(T--){scanf("%lld%lld%lld%lld%lld%lld",&a,&b,&c,&d,&p,&n);
    		if(n==1){printf("%lld
    ",a);
    			continue;
    		}
    		if(n==2){printf("%lld
    ",b);
    			continue;
    		}
    		mt.r=1;
    		mt.c=3;
    		mt.m[1][1]=1,mt.m[1][2]=a,mt.m[1][3]=b;
    		z.c=z.r=3;
    		z.m[1][1]=1,z.m[1][2]=0;
    		z.m[2][1]=0,z.m[2][2]=0,z.m[2][3]=c;
    		z.m[3][1]=0,z.m[3][2]=1,z.m[3][3]=d;
    		l=3;
    		while(l<=n){
    			v=p/l;
    			if(v)r=min(n,p/v);
    			else r=n;
    			z.m[1][3]=v,mt=mt*POW(z,r-l+1);
    			//cout<<"l="<<l<<"r="<<r<<"
    ";
    			//cout<<"MAT=
    ";
    			//printmat(mt);
    			l=r+1;
    		}
    		printf("%lld
    ",mt.m[1][3]);
    	}
    	return 0;
    }
    

    H.

    不读题 + 瞎想系列
    by sshwy & GavinZheng & zry

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	while(~scanf("%d",&n)){printf("Yes
    ");
    	}
    	return 0;
    }
    

    I.

    逆序对
    by sshwy

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const ll N=100005;
    ll n,x,y,tot;
    ll a[N],tmp[N];
    
    void merge_sort(ll *arr,ll l,ll r){if(l==r)return;
    	ll mid=(l+r)>>1;
    	merge_sort(arr,l,mid);
    	merge_sort(arr,mid+1,r);
    	for(ll i=l,j=mid+1,k=l;i<=mid||j<=r;k++){if(i>mid)tmp[k]=arr[j],j++;
    		else if(j>r||arr[i]<=arr[j])tmp[k]=arr[i],i++,tot+=j-mid-1;
    		else tmp[k]=arr[j],j++;
    	}
    	for(ll i=l;i<=r;i++)arr[i]=tmp[i];
    }
    
    int main(){while(~scanf("%lld%lld%lld",&n,&x,&y)){for(ll i=1;i<=n;i++)scanf("%lld",&a[i]);
    		tot=0;
    		merge_sort(a,1,n);
    		printf("%lld
    ",min(x,y)*tot);
    	}
    	return 0;
    }//sshwy
    

    J.

    数据读入处理
    by sshwy & GavinZheng

    #include<bits/stdc++.h>
    using namespace std;
    int t,a,b;
    char s[100];
    
    void rd(int & x,int & y){
    	x=y=0;
    	char c=getchar();bool isN=0;
    	while(!isdigit(c)){c=getchar();
    		if(c=='-')isN=1;
    	}
    	while(isdigit(c))x=x*10+c-'0',c=getchar();
    	if(isN)x=0-x;
    	if(c!='.')return;
    	c=getchar();
    	while(isdigit(c))y=y*10+c-'0',c=getchar();
    	if(isN)y=0-y;
    }
    
    int main(){scanf("%d",&t);
    	while(t--){scanf("%d%d",&a,&b);
    		int p,q;
    		rd(p,q);
    		q=q*6,b=(b+q);
    		a=(a+p-8+(int)floor(b*1.0/60)+24)%24,b=(b+60)%60;
    		printf("%02d:%02d
    ",a,b);
    	}
    	return 0;
    }
    
  • 相关阅读:
    jQuery万能放大镜插件(普通矩形放大镜)
    Mysql增量写入Hdfs(二) --Storm+hdfs的流式处理
    Mysql增量写入Hdfs(一) --将Mysql数据写入Kafka Topic
    Spark SQL,如何将 DataFrame 转为 json 格式
    贝叶斯分类算法实例 --根据姓名推测男女
    从分治算法到 Hadoop MapReduce
    Actor模型浅析 一致性和隔离性
    写博客的思考
    scala模式匹配详细解析
    [转] Scala 中的异步事件处理
  • 原文地址:https://www.cnblogs.com/sshwy/p/11032462.html
Copyright © 2011-2022 走看看