ACM-ICPC实验室20.2.22测试-动态规划

Posted zhanglichen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACM-ICPC实验室20.2.22测试-动态规划相关的知识,希望对你有一定的参考价值。

C.田忌赛马

直接贪心做就可以~

#include<bits/stdc++.h>
using namespace std;
const int maxn=10014;
int a[maxn],b[maxn];
int main() {
    int n;
    while(~scanf("%d",&n)) {
        for(int i=0;i<n;i++) scanf("%d",&b[i]);
        for(int i=0;i<n;i++) scanf("%d",&a[i]);
        sort(a,a+n);
        sort(b,b+n);
        int x1=0,y1=0;
        int x2=n-1,y2=n-1;
        int ans=0;
        for (int i=0;i<n;i++) {
            if (a[x1]>b[y1]) {
                ans+=100;
                x1++;
                y1++;
            }
            else if(a[x1]<b[y1]) {
                ans-=100;
                x1++;
                y2--;
            }
            else {
                if(a[x2]>b[y2]) {
                    ans+=100;
                    x2--;
                    y2--;
                }
                else if (a[x1]<b[y2]) {
                    ans-=100;
                    x1++;
                    y2--;
                }
            }
        }
        printf("%d
",ans);
    }
    return 0;
}

D.202020

最简单的dp~

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e6+14;
ll dp[maxn],dp1[maxn];
int main () {
    string s;
    cin>>s;
    if (s[0]==2) dp[0]=0,dp1[0]=1;
    else dp[0]=1,dp1[0]=0;
    for (int i=1;i<s.length();i++) {
           if (s[i]==2) dp[i]=dp1[i-1],dp1[i]=dp[i-1]+1;
        else dp[i]=dp[i-1]+1,dp1[i]=dp1[i-1];
    }
    ll ans=0;
    for (int i=0;i<s.length();i++) ans+=dp[i];
    printf ("%lld
",ans);
    return 0;
}
//2020 

 

以上是关于ACM-ICPC实验室20.2.22测试-动态规划的主要内容,如果未能解决你的问题,请参考以下文章

2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划

ACM-ICPC实验室20.2.19测试-图论

ACM-ICPC实验室20.2.21测试-图论

算法设计与分析 实验四 动态规划求解流水线问题

算法分析实验 3. 基于动态规划方法求解0-1背包问题

动态规划入门——传说中的零一背包问题