zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 97 (Rated for Div. 2)部分题解

    Problem A

    我们构造以l为a,那么转换一下题目的方程,就可以发现,(2*l>r)的时候条件一定成立。

    Problem B

    不知道什么鬼,猜一发就能过了。大概就是连续的0和1的数量取一个max。

    Problem C

    本来是想贪心的,但是这个题目太难搞了。最后思路还是走向dp,首先我们分析最后的状态一定是所有的菜都被在某一个时间拿走。那么在某时刻拿走当前菜的状态取决于前一盘菜被拿走的时候的状态,于是我们需要枚举前一个菜被拿走的时间,状态转移方程为:(dp[i][j]=max (dp[i][j],dp[i-1][k]+w)).
    代码实现

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e3+10;
    int dp[maxn][maxn];
    int n;
    void check_min (int &a,int b) {a=min (a,b);}
    
    int main () {
      int t;
      scanf ("%d",&t);
      while (t--) {
        scanf ("%d",&n);
        vector <int> v(n+1);
        for (int i=1;i<=n;i++) scanf ("%d",&v[i]);
        memset (dp,0x7f,sizeof (dp));
        for (int i=0;i<=2*n;i++) dp[i][0]=0;
        sort (v.begin ()+1,v.end ());
        for (int i=1;i<=n;i++) 
          for (int j=i-1;j<=2*n;j++) 
            for (int k=j+1;k<=2*n;k++) {
              check_min (dp[i][k],dp[i-1][j]+abs (v[i]-k));
            }
        int ans=0x3f3f3f3f;
        for (int i=1;i<=2*n;i++) check_min (ans,dp[n][i]);
        printf ("%d
    ",ans);
      }
      return 0;
    }
    
  • 相关阅读:
    哈希表-环形链表
    双链表
    文本框值是否为空,有就隐藏提示语,反之显示
    常用正则
    jquery遍历赋值
    动态更改地址栏参数
    截取地址栏参数
    java.lang.NoSuchMethodException
    文字超出范围隐藏,改变隐藏“...”颜色
    网页设定定时自动跳转
  • 原文地址:https://www.cnblogs.com/hhlya/p/13895473.html
Copyright © 2011-2022 走看看