zoukankan      html  css  js  c++  java
  • contest 1.17

    C.最大公约数II

    分解因子+欧拉函数

    #include <iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<algorithm>
    typedef long long ll;
    using namespace std;
     
    ll ans1,asn2;
     
    ll get_phi(ll x){
        ll ret=x;
        for(ll i=2;i*i<=x;i++)
          if(x%i==0){
            ret/=i,ret*=(i-1);
            while(x%i==0)x/=i;
          }
        if(x>1)ret/=x,ret*=x-1;
        return ret;
    }
     
     
    int main()
    {
        ll n;scanf("%lld",&n);
        ll i;
        ll ans1,ans2;
        for(i=1;i*i<=n;i++){
            if(n%i==0){
                ans1=i;
                ans2=get_phi(n/i);
                printf("%lld %lld
    ",ans1,ans2);
            }
     
        }
        if(sqrt(n)*sqrt(n)==n) i-=2;
        else i-=1;
        for(i;i>=1;i--){
            if(n%i==0){
                ans1=n/i;
                ans2=get_phi(i);
                printf("%lld %lld
    ",ans1,ans2);
            }
        }
        return 0;
    }
    View Code

    A.

     dp_0[i]表示长度为i的s[i]与s[i-1]不同且s[i]与s[i+1]相同的无春花串的总数

     dp_1[i]表示长度为i的s[i]与s[i-1]不同且s[i]与s[i+1]不同的无春花串的总数

    #include <iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #define mod 1000000007
    typedef long long ll;
    using namespace std;
     
    ll dp_0[100005],dp_1[100005];
    ll dp[100005];
     
    int main()
    {
        ll t;scanf("%lld",&t);
        while(t--){
            ll n,s;scanf("%lld%lld",&n,&s);
            dp_0[0]=1,dp_1[0]=0;dp[0]=1;
            dp_0[1]=0,dp_1[1]=s-1;dp[1]=s-1;
            for(int i=2;i<=n-3;i++){
                dp_0[i]=(dp_0[i-2]+dp_1[i-2])%mod*(s-1)%mod;
                dp_1[i]=(dp_0[i-1]+dp_1[i-1])%mod*(s-1)%mod;
                dp[i]=(dp_0[i]+dp_1[i])%mod;
            }
            ll ans=0;
            for(ll i=0;i<=n-3;i++){
                ans=(ans+dp[i]*dp[n-3-i]%mod*s%mod)%mod;
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
    View Code

    F.Mixing Milk II

    暴力

    #include <iostream>
    #include<cstdio>
    using namespace std;
     
    int main()
    {
        int a,x;
        scanf("%d%d",&a,&x);
        int b,y;
        scanf("%d%d",&b,&y);
        int c,z;
        scanf("%d%d",&c,&z);
        for(int i=1;i<=100;i++){
            if(i%3==1){
                if(x+y>b) x-=(b-y),y=b;
                else y+=x,x=0;
            }
            else if(i%3==2){
                if(y+z>c) y-=(c-z),z=c;
                else z+=y,y=0;
            }
            else{
                if(z+x>a) z-=(a-x),x=a;
                else x+=z,z=0;
            }
            //printf("%d %d %d
    ",x,y,z);
        }
        printf("%d
    %d
    %d
    ",x,y,z);
        return 0;
    }
    View Code

    G.The Bucket List

    暴力

    #include <iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    typedef long long ll;
    using namespace std;
     
    struct Node{
      int s,t,b;
    }node[105];
    int vis[1005];
     
    bool cmp(Node a,Node b){
      if(a.s!=b.s) return a.s<b.s;
      else return a.t<b.t;
    }
     
    int main()
    {
        int n;scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d%d%d",&node[i].s,&node[i].t,&node[i].b);
        }
        sort(node+1,node+1+n,cmp);
        int ans=0;
        for(int i=1;i<=n;i++){
            int s=node[i].s;
            int t=node[i].t;
            int b=node[i].b;
            int cnt=0,k=0;
            while(cnt<b){
                k++;
                if(vis[k]<=s) {
                    //printf("k=%d vis=%d s=%d
    ",k,vis[k],s);
                    cnt++,vis[k]=t;
                }
                else continue;
            }
            ans=max(ans,k);
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    A.五子棋

    暴力

    #include <iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
     
    int Map[20][20];
    int dire[8][2]={-1,-1,-1,0,-1,1,0,1,1,1,1,0,1,-1,0,-1};
     
    bool in(int x,int y){
      if(x>=1&&x<=15&&y>=1&&y<=15) return 1;
      return 0;
    }
     
    bool check(int x,int y,int now){
      int cnt[9];
      for(int i=0;i<8;i++){
        cnt[i]=0;
        int x_=x,y_=y;
        while(in(x_+dire[i][0],y_+dire[i][1])){
            x_=x_+dire[i][0];
            y_=y_+dire[i][1];
            //printf("%d %d %d %d %d %d
    ",x,y,x_,y_,Map[x_][y_],now);
            if(Map[x_][y_]!=now) break;
            else cnt[i]++;
        }
      }
      if(cnt[0]+cnt[4]+1>=5) return 1;
      if(cnt[1]+cnt[5]+1>=5) return 1;
      if(cnt[2]+cnt[6]+1>=5) return 1;
      if(cnt[3]+cnt[7]+1>=5) return 1;
      return 0;
    }
     
    int main()
    {
        for(int i=1;i<=15;i++){
            for(int j=1;j<=15;j++){
                Map[i][j]=-1;
            }
        }
        int n;scanf("%d",&n);
        int step=0,winner=1;
        for(int i=1;i<=n;i++){
            int x,y;scanf("%d%d",&x,&y);
            if(step) continue;
            Map[x][y]=i%2;
            if(check(x,y,i%2)) step=i,winner=i%2;
        }
        if(!step) puts("Tie");
        else{
            if(winner==1) printf("A ");
            else printf("B ");
            printf("%d
    ",step);
        }
        return 0;
    }
    View Code

    D.凉宫春日的忧郁

    取对数

    import java.math.*;
    import java.util.Scanner;
     
    public class Main {
     
        public static void main(String[] args) {
            Scanner cin=new Scanner(System.in);
            int t=cin.nextInt();
            for(int i=1;i<=t;i++){       
                int x=cin.nextInt();
                int y=cin.nextInt();
                if(y==0) {
                    System.out.println("Yes");
                    continue;
                }
                double tmp=0;
                for(int j=1;j<=y;j++){
                    tmp=tmp+(Math.log10(j*1.0)/Math.log10(Math.E));
                }
                tmp=tmp/y;
                tmp=Math.pow(Math.E, tmp);
                if(x<=tmp) System.out.println("Yes");
                else System.out.println("No");
            }
        }
     
    }
    View Code

    H.Back and Forth

    暴力

    #include <iostream>
    #include<cstdio>
    #include<cstring>
    #include<map>
    using namespace std;
     
    int a[20],b[20];
    int copa[20],copb[20];
    map<int,int> mp;
     
    int main()
    {
        for(int i=1;i<=10;i++){
            scanf("%d",&a[i]);
            copa[i]=a[i];
        }
        for(int i=1;i<=10;i++){
            scanf("%d",&b[i]);
            copb[i]=b[i];
        }
        int tot=0,ans=0;
        for(int i=1;i<=10;i++){
            tot-=a[i];b[11]=a[i];
            if(i<=9) swap(a[i],a[10]);
            for(int j=1;j<=11;j++){
                tot+=b[j];a[10]=b[j];
                if(j<=10) swap(b[j],b[11]);
                for(int p=1;p<=10;p++){
                    tot-=a[p];b[11]=a[p];
                    if(p<=9) swap(a[p],a[10]);
                    for(int q=1;q<=11;q++){
                        tot+=b[q];a[10]=b[q];
                        if(q<=10) swap(b[q],b[11]);
                        if(!mp[tot]) {
                                //printf("%d %d %d %d ",i,j,p,q);
                                //printf("tot=%d
    ",tot);
                                mp[tot]=1,ans++;
                        }
                        if(q<=10) swap(b[q],b[11]);
                        tot-=b[q];
                    }
                    if(p<=9) swap(a[p],a[10]);
                    tot+=a[p];
                }
                if(j<=10) swap(b[j],b[11]);
                tot-=b[j];
            }
            if(i<=9) swap(a[i],a[10]);
            tot+=a[i];
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code
    转载请注明出处:https://www.cnblogs.com/lllxq/
  • 相关阅读:
    20.Docker Swarm集群
    Phalcon下命令行应用(command line applications)
    Mysql 命令备忘
    PHPExcel+phalcon+yii批量导入
    Yii 之分页 + bootstrap
    PHPMailer+phalcon中使用
    Phalcon之分页
    虚拟机中ip和host设置问题
    php RSS订阅功能
    ubuntu/linux下设置永久路由
  • 原文地址:https://www.cnblogs.com/lllxq/p/10280877.html
Copyright © 2011-2022 走看看