zoukankan      html  css  js  c++  java
  • 2019佳木斯集训 Day5

        T1

      大水题,题里咋说你就咋做,AC

      思路:大水题

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int t;
     4 long long n,ans;
     5 int main(){
     6     scanf("%d",&t);
     7     while(t--){
     8         scanf("%lld",&n);
     9         ans=0;
    10         if(n==1){printf("0
    ");continue;}
    11         while(n!=1){
    12             while(n%2==0) ans+=1,n/=2;
    13             while(n%3==0) ans+=2,n/=3;
    14             while(n%5==0) ans+=3,n/=5;
    15             if(n==1) break;
    16             if(n%2!=0&&n%3!=0&&n%5!=0){ans=-1;break;}
    17         }
    18         printf("%lld
    ",ans);
    19     }
    20     return 0;
    21 }
    T1-A

        T2

      思维题,细节较多,总体不难

      zkc大佬提醒您:十年OI一场空,不开long long见祖宗

      思路:模拟deque找到序列中最大的值在第一位的时候,

    我们就可以确定,他后面序列会按最大值在第一位时的位置

    无限循环,当时我们只需特判即可.

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 long long n,nq,tail;
     4 long long x,qwq,stop,maxx,ac;
     5 long long a[400010];
     6 long long m[300010];
     7 long long ans[200020][3];
     8 int main(){
     9     scanf("%lld%lld",&n,&nq);
    10     tail=n;
    11     for(register int i=1;i<=n;i++) scanf("%lld",&a[i]),maxx=max(maxx,a[i]);
    12     //printf("%lld
    ",maxx);
    13     for(register int i=2;i<=n;i++){
    14         ans[i-1][1]=a[i-1];
    15         ans[i-1][2]=a[i];
    16         a[++tail]=min(a[i],a[i-1]);
    17         a[i]=max(a[i],a[i-1]);
    18         if(a[i]==maxx){stop=i;break;}
    19     }
    20     //for(register int i=1;i<=n;i++) printf("%lld %lld
    ",ans[i][1],ans[i][2]);
    21     //for(register int i=1;i<=tail;i++) printf("%lld ",a[i]);
    22     for(register int i=1;i<=nq;i++){
    23         scanf("%lld",&x);
    24         if(x<stop) printf("%lld %lld
    ",ans[x][1],ans[x][2]);
    25         else if(x>=stop){
    26             ac=(x-stop)%(n-1)+1;
    27             //if(ac==0) ac=n-1;
    28             printf("%lld %lld
    ",maxx,a[stop+ac]);
    29         }
    30     }
    31     return 0;
    32 }
    T2-B

        T3

      也是思维题,比较水

      思路:光哥每次查房,咱们给他记录一个vis

    如果后来光哥查的一间房和光哥之前查的一间房相邻

    那就把那间房往这边位移的方案不要

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 bool ans[100010][4];
     4 bool vis[100010];
     5 int n,m,x;
     6 long long trueans;
     7 int main(){
     8     scanf("%d%d",&n,&m);
     9     trueans=4+3*(n-2);
    10     for(register int i=1;i<=m;i++){
    11         scanf("%d",&x),vis[x]=1;//2
    12         if(vis[x+1]) ans[x+1][1]=1;
    13         if(vis[x-1]) ans[x-1][3]=1;
    14     }
    15     for(register int i=1;i<=n;i++)
    16     for(register int j=1;j<=3;j++) if(ans[i][j]) trueans--;
    17     for(register int i=1;i<=n;i++) if(vis[i]) trueans--;
    18     printf("%lld",trueans);
    19     return 0;
    20 }
    T3-C

        T4

      难题,数学题

      思路:我们给等式两边同时乘上a[i]-a[j]然后暴力即可.....

      
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 unsigned long long n,p,k;
     4 unsigned long long a[3000010],b[3000010];
     5 unsigned long long ans,c;
     6 bool vis[3000010];
     7 inline unsigned long long ksc(unsigned long long a,unsigned long long b,unsigned long long p){
     8     unsigned long long ret=0;
     9     while(b){
    10         if(b&1) ret=(ret+a)%p;
    11         a=(a+a)%p;
    12         b>>=1;
    13     }
    14     return ret;
    15 }
    16 int main(){
    17     scanf("%lld%lld%lld",&n,&p,&k);
    18     for(register int i=1;i<=n;i++)
    19     {
    20         scanf("%lld",&a[i]);
    21         a[i]=(a[i]*a[i]%p*a[i]%p*a[i]-k*a[i]%p+p)%p;
    22     }
    23     sort(a+1,a+n+1);
    24     for(int i=1;i<n;i++)
    25     {
    26         if(a[i]==a[i+1])
    27         {
    28             c++;
    29             
    30             ans+=c;
    31         }
    32         else 
    33         c=0;
    34         
    35     }
    36     printf("%lld",ans);
    37     return 0;
    38 }
    T4-D

      由于后面的问题涉及玄学~~~

      Error 404! ! !

      end;

     

     

  • 相关阅读:
    varnish反向代理
    Asp.Net MVC 3.0
    反向代理(Reverse Proxy)
    Go语言开发Windows应用
    Windows下安装NodeJS和CoffeeScript方法
    数据库设计....
    发布一个开源的c++网络事件库
    非小型电子商务系统设计经验分享 Coding changes the world
    SqlServer查询计划
    cocos2dx总结(一)HelloWord
  • 原文地址:https://www.cnblogs.com/liuhailin/p/11272314.html
Copyright © 2011-2022 走看看