zoukankan      html  css  js  c++  java
  • 清北刷题冲刺 10-31 p.m

    数列

    #include<iostream>
    #include<cstdio>
    using namespace std;
    long long a,b,ans;
    void f(long long x,long long y){
        if(y==0)return;
        ans+=x/y;
        f(y,x%y);
    }
    int main(){
        freopen("seq.in","r",stdin);freopen("seq.out","w",stdout);
        cin>>a>>b;
        ans=1;
        f(a,b);
        cout<<ans;
    }
    100分 gcd

    车辆销售

    #include<iostream>
    #include<cstdio>
    #include<queue>
    #include<cstring>
    #include<ctime>
    #define maxn 100010
    #ifdef WIN32
    #define PLL "%I64d"
    #else
    #define PLL "%lld"
    #endif
    using namespace std;
    int n,m,num,head[maxn],mx,mn=0x7fffffff,cnt;
    bool vis[maxn];
    struct node{
        int to,pre,v;
    }e[200010*2];
    void Insert(int from,int to,int v){
        e[++num].to=to;
        e[num].v=v;
        e[num].pre=head[from];
        head[from]=num;
    }
    int q[maxn],h,t;
    int res;
    bool flag=0,com[maxn];
    int bfs(int limit){
        h=1;
        while(h<=t){
            int now=q[h];h++;
            if(com[now])continue;
            flag=0;
            for(int i=head[now];i;i=e[i].pre){
                if(e[i].v<limit){
                    flag=1;
                    continue;
                }
                int to=e[i].to;
                if(!vis[to]){
                    res++;
                    vis[to]=1;
                    q[t++]=to;
                }
            }
            if(flag==0)com[now]=1;
        }
        return res;
    }
    int qread(){
        int i=0,j=1;
        char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')j=-1;ch=getchar();}
        while(ch<='9'&&ch>='0')i=i*10+ch-'0',ch=getchar();
        return i*j;
    }
    int main(){
    //    freopen("Cola.txt","r",stdin);
        freopen("car.in","r",stdin);freopen("car.out","w",stdout);
        n=qread();m=qread();
        int x,y,z;
        for(int i=1;i<=m;i++){
            x=qread();y=qread();z=qread();
            Insert(x,y,z);Insert(y,x,z);
            mx=max(mx,z);mn=min(mn,z);
        }
        long long ans;
        for(int i=1;i<=n;i++){
            ans=0;
            memset(q,0,sizeof(q));h=t=1;
            memset(vis,0,sizeof(vis));
            memset(com,0,sizeof(com));
            q[t++]=i;vis[i]=1;
            res=0;
            int p,now;
            for(int j=mx+1;j>=mn-1;j--){
                if(j<0)break;
                now=bfs(j);
                if(j==mx+1){p=now;continue;}
                ans+=1LL*(p-now)*(p-now);
                p=now;
            }
            printf(PLL" ",ans);
        }
    //    cout<<endl<<clock();
    }
    30分 bfs暴力

    取数

    #include<iostream>
    #include<cstdio>
    #define maxn 1000010
    using namespace std;
    int n,m,k,a[maxn];
    long long ans=10000000000000;
    int qread(){
        int i=0,j=1;
        char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')j=-1;ch=getchar();}
        while(ch<='9'&&ch>='0')i=i*10+ch-'0',ch=getchar();
        return i*j;
    }
    void dfs(int pos,int cnt,long long sum){
        if(cnt==k){
            ans=min(ans,sum);
            return;
        }
        if(sum>=ans)return;
        if(pos>=n)return;
        int res=0;
        res+=(n-pos)/m;
        if(res*m<n-pos)res++;
        if(res+cnt<k)return;
        if(cnt==0){
            for(int i=pos+1;i<=n;i++)dfs(i,cnt+1,sum+a[i]);
            return;
        }
        for(int i=pos+m;i<=n;i++){
            dfs(i,cnt+1,sum+a[i]);
        }
    }
    int main(){
        freopen("number.in","r",stdin);freopen("number.out","w",stdout);
    //    freopen("Cola.txt","r",stdin);
        n=qread();m=qread();k=qread();
        for(int i=1;i<=n;i++)a[i]=qread();
        dfs(0,0,0);
        cout<<ans;
    }
    20分 暴力
    预计得分100+30+0
    实际得分100+30+20
    T1有一定的思维量,但是代码很好写,也很容易从辗转相减想到辗转相除。T2T3都写的暴力,T3用的dfs,写的剪枝比较多,所以得到了20分。
    感觉这几天以来上午炸的概率比较大,精神状态不好,下午相对还可以。晚上要保证睡眠充足,尽量以较好的精神面貌迎接上午的考试
    小结
  • 相关阅读:
    JS BOM对象 History对象 Location对象
    JS 字符串对象 数组对象 函数对象 函数作用域
    JS 引入方式 基本数据类型 运算符 控制语句 循环 异常
    Pycharm Html CSS JS 快捷方式创建元素
    CSS 内外边距 float positio属性
    CSS 颜色 字体 背景 文本 边框 列表 display属性
    【Android】RxJava的使用(三)转换——map、flatMap
    【Android】RxJava的使用(二)Action
    【Android】RxJava的使用(一)基本用法
    【Android】Retrofit 2.0 的使用
  • 原文地址:https://www.cnblogs.com/thmyl/p/7762139.html
Copyright © 2011-2022 走看看