zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 62题解

    A题

    签到

    #include<bits/stdc++.h>
    using namespace std; 
    int main()
    {
        int n,rw=0,t=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            int r;
            cin>>r;
            if(r>rw) rw=r;
            if(i>=rw) t++;
        }
        cout<<t<<endl;
        return 0;
    }
    View Code

    B题

    前后枚举,看看那个情况小

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef pair<int,int> pll;
    const int N=1e6+10;
    const int mod=1e9+7;
    int main(){
        ios::sync_with_stdio(false);
        int t;
        cin>>t;
        while(t--){
            int n;
            cin>>n;
            string s;
            cin>>s;
            int cnt1=0,cnt2=0;
            int i;
            for(i=0;i<n;i++){
                if(s[i]=='<')
                    cnt1++;
                else
                    break;
            }
            for(i=n-1;i>=0;i--){
                if(s[i]=='>')
                    cnt2++;
                else
                    break;
            }
            cout<<min(cnt1,cnt2)<<endl;
        }
        return 0;
    }
    View Code

    C题

    贪心算法,按照beauty排序之后倒序维护一个优先队列最大的k个值

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef pair<int,int> pll;
    const int N=1e6+10;
    const int mod=1e9+7;
    struct node{
        ll a,b;
    }s[N];
    ll sum;
    priority_queue<int,vector<int>,greater<int> > q;
    bool cmp(node a,node b){
        return a.b<b.b;
    }
    int main(){
        ios::sync_with_stdio(false);
        int n,k;
        cin>>n>>k;
        int i;
        for(i=1;i<=n;i++){
            cin>>s[i].a>>s[i].b;
        }
        sort(s+1,s+1+n,cmp);
        ll ans=0;
        for(i=n;i>=1;i--){
            int tmp=0;
            if((int)q.size()==k){
                tmp=q.top();
                q.pop();
            }
            ans=max(ans,(sum-tmp+s[i].a)*s[i].b);
            q.push(tmp);
            q.push(s[i].a);
            sum+=s[i].a;
            if((int)q.size()>k){
                sum-=q.top();
                q.pop();
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code

    D题

    区间dp三角剖分裸题

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef pair<int,int> pll;
    const int N=1e6+10;
    const int mod=1e9+7;
    ll f[1010][1010];
    ll w[N];
    int main(){
        ios::sync_with_stdio(false);
        int i;
        int n;
        cin>>n;
        memset(f,-1,sizeof f);
        for(i=1;i<n;i++){
            f[i][i+1]=0;
        }
        for(int len=3;len<=n;len++){
            for(int i=1;i+len-1<=n;i++){
                int j=i+len-1;
                for(int k=i+1;k<j;k++){
                    if(f[i][j]==-1||f[i][j]>f[i][k]+f[k][j]+i*j*k)
                    f[i][j]=f[i][k]+f[k][j]+i*j*k;
                }
            }
        }
        cout<<f[1][n]<<endl;
        return 0;
    }
    View Code
  • 相关阅读:
    C# 制作卸载文件
    【转】C#窗体飞入飞出的动画效果(Api)
    C# 给picturebox添加滚动条
    js中的各种获取日期
    Java与.NET 的Web Services相互调用
    android源码、博文2
    仿网易新闻app下拉标签选择菜单
    安卓巴士android源码、博文精选1
    android源码 分享1
    优秀源码分享
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/14203251.html
Copyright © 2011-2022 走看看