• Codeforces Round #433


    A.Fraction

    思路:暴力

    AC代码:

    #include "iostream"
    #include "iomanip"
    #include "string.h"
    #include "stack"
    #include "queue"
    #include "string"
    #include "vector"
    #include "set"
    #include "map"
    #include "algorithm"
    #include "stdio.h"
    #include "math.h"
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
    #define mem(a,x) memset(a,x,sizeof(a))
    #define step(x) fixed<< setprecision(x)<<
    #define mp(x,y) make_pair(x,y)
    #define pb(x) push_back(x)
    #define ll long long
    #define endl ("
    ")
    #define ft first
    #define sd second
    #define lrt (rt<<1)
    #define rrt (rt<<1|1)
    using namespace std;
    const ll mod=1e9+7;
    const ll INF = 1e18+1LL;
    const int inf = 1e9+1e8;
    const double PI=acos(-1.0);
    const int N=1e5+100;
    
    int n,a,b;
    int main(){
        ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
        cin>>n;
        for(int i=1; i<=n/2; ++i){
            int g=__gcd(i,n-i);
            if(g==1){
                a=max(a,i);
            }
        }
        cout<<a<<" "<<n-a<<endl;
        return 0;
    }
    View Code

    B.Maxim Buys an Apartment

    AC代码:

    #include "iostream"
    #include "iomanip"
    #include "string.h"
    #include "stack"
    #include "queue"
    #include "string"
    #include "vector"
    #include "set"
    #include "map"
    #include "algorithm"
    #include "stdio.h"
    #include "math.h"
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
    #define mem(a,x) memset(a,x,sizeof(a))
    #define step(x) fixed<< setprecision(x)<<
    #define mp(x,y) make_pair(x,y)
    #define pb(x) push_back(x)
    #define ll long long
    #define endl ("
    ")
    #define ft first
    #define sd second
    #define lrt (rt<<1)
    #define rrt (rt<<1|1)
    using namespace std;
    const ll mod=1e9+7;
    const ll INF = 1e18+1LL;
    const int inf = 1e9+1e8;
    const double PI=acos(-1.0);
    const int N=1e5+100;
    
    ll n,k,mi,ma;
    int main(){
        ios::sync_with_stdio(0),cin.tie(0),cin.tie(0);
        cin>>n>>k;
        if(n!=k && k!=0) mi=1;
        int a=n/3, b=k-a;
        int ans=2*a;
        if(k<=a){
            ans=k*2;
            cout<<mi<<" "<<ans<<endl;
        }
        else{
            int l=n-3*a;
            if(l==1){
                b--;
            }
            if(l==2){
                b-=2;
            }
            cout<<mi<<" "<<ans-b<<endl;
        }
        return 0;
    }
    View Code

    C.Planning

    思路:贪心

    AC代码:

    #include "iostream"
    #include "iomanip"
    #include "string.h"
    #include "stack"
    #include "queue"
    #include "string"
    #include "vector"
    #include "set"
    #include "map"
    #include "algorithm"
    #include "stdio.h"
    #include "math.h"
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
    #define mem(a,x) memset(a,x,sizeof(a))
    #define step(x) fixed<< setprecision(x)<<
    #define mp(x,y) make_pair(x,y)
    #define pb(x) push_back(x)
    #define ll long long
    #define endl ("
    ")
    #define ft first
    #define sd second
    #define lrt (rt<<1)
    #define rrt (rt<<1|1)
    using namespace std;
    const ll mod=1e9+7;
    const ll INF = 1e18+1LL;
    const int inf = 1e9+1e8;
    const double PI=acos(-1.0);
    const int N=1e5+100;
    
    struct Node{
        ll t,c;
        bool friend operator< (Node a, Node b){
            return a.c<b.c;
        }
    };
    Node a[N],now;
    priority_queue<Node> Q;
    ll c[N],n,k;
    ll ans;
    int main(){
        ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
        cin>>n>>k;
        for(int i=1; i<=n; ++i){
            cin>>a[i].c; a[i].t=i;
        }
        for(int i=1; i<=k; ++i){
            Q.push(a[i]);
        }
        int l=0;
        for(int i=k+1; i<=n+k; ++i){
            if(i<=n){
                Q.push(a[i]);
            }
            now=Q.top();
            Q.pop();
            ans += (i-now.t)*now.c;
            c[now.t]=i;
        }
        cout<<ans<<endl;
        for(int i=1; i<=n; ++i){
            cout<<c[i]<<" ";
        }
        return 0;
    }
    View Code
  • 相关阅读:
    2014年10月10号——数据类型之间的转换
    2014年10月9日——语言基础2
    2014年10月9日——语言基础1
    2014年10月8日——进制转换
    js
    SQL的数据类型
    SQL,学习基础2
    SQL数据库的备份和恢复
    用java调用oracle存储过程总结(转)
    用JAVA调用Mysql数据库,数据存储过程的封装与调用;
  • 原文地址:https://www.cnblogs.com/max88888888/p/7518077.html
Copyright © 2020-2023  润新知