zoukankan      html  css  js  c++  java
  • AtCoder Beginner Contest 210 题解

    A,B就不说了 水题

    C题的话数据很大 我一开始想到离散化 然后用了个最长连续子序列 但是忘记考虑题目有限制长度为k

    所以前面wa了几个点

    想了想 用map做比较好 又简单,题目就变得很水

    #include <iostream>
    #include <map>
    using namespace std;
    int n, k;
    int c[300005];
    map<int, int> mp;
    int main(void)
    {
      cin >> n >> k;
      for(int i = 1; i <= n; i++) cin >> c[i];
      for(int i = 1; i <= k; i++) mp[c[i]]++;
      int ans = mp.size();
      for(int i = k+1; i <= n; i++){
        mp[c[i]]++;
        mp[c[i-k]]--;
        if(mp[c[i-k]] == 0) mp.erase(c[i-k]);
        ans = max(ans, (int)mp.size());
      }
      cout << ans << endl;
      return 0;
    }

    D题 一个简单的dp应用

    相对位置来看无非东南和东北两种走向,所以直接做两次dp,答案统计最小值即可

    #include <bits/stdc++.h>
     
    using namespace std;
    const int maxn = 1100;
    const long long INF = 0x3f3f3f3f;
    typedef long long ll;
    ll n,m,k,a[maxn][maxn],dp[maxn][maxn];
    int main(){
        cin >> n >> m >> k;
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                cin >> a[i][j];
            }
        }
        for(int i=0;i<=n;++i) dp[i][0]=1e18;
        for(int j=0;j<=m;++j) dp[0][j]=dp[n+1][j]=1e18;
        ll ans=1e18;
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                dp[i][j]=min(a[i][j],min(dp[i-1][j],dp[i][j-1])+k);
            }
        }
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                ans=min(ans,a[i][j]+k+min(dp[i-1][j],dp[i][j-1]));
            }
        }
        for(int i=n;i;--i){
            for(int j=1;j<=m;++j){
                dp[i][j]=min(a[i][j],min(dp[i+1][j],dp[i][j-1])+k);
            }
        }
        for(int i=1;i<=n;++i){
            for(int j=1;j<=m;++j){
                ans=min(ans,a[i][j]+k+min(dp[i+1][j],dp[i][j-1]));
            }
        }
        printf("%lld
    ",ans);
        return 0;
    }

    E题写对了 后来晚上有事情F题没写(bushi)

    等我下完课回来更。

  • 相关阅读:
    转数组
    字符串分割(分行)
    字符串操作:判断相等、判断首尾、大小写转换
    字符串操作:索引位置、去空格、替换字符串
    数组(遍历、转置、元素替换、排序、复制)
    专利申请教程
    循环语句
    条件语句
    输入
    h.264直接预测
  • 原文地址:https://www.cnblogs.com/yjyl0098/p/15026040.html
Copyright © 2011-2022 走看看