[kuangbin带你飞] 基础DP 题集

Posted aiahtwo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[kuangbin带你飞] 基础DP 题集相关的知识,希望对你有一定的参考价值。

题目链接:https://vjudge.net/contest/342715

第一题:A - Max Sum Plus Plus

 

 

第二题:B - Ignatius and the Princess IV

题意:给n个数字,n为奇数,求一个数字x,x的个数大于等于(n+1)/2

解法一:map容器

思路:n的范围为1000000,但是元素x值不明,所以我们用map的第一个元素去存x,第二个元素存x的次数

代码:

#include<bits/stdc++.h>
#include<map>
using namespace std;
#define maxn 1000000
int n;
map<int,int> mp;
//思路:采用map,第一个数存数组的数,第二个数存数的个数 
int main(){
    while(scanf("%d",&n)!=EOF){
    mp.clear();
    int num=0,flag=0,b,c;
    for(int i=1;i<=n;i++){
        scanf("%d",&b);
        if(mp.count(b)){ //map的第一个元素 
            mp[b]++;//mp[b]记录b的个数 
            if(num<mp[b]){
                num=mp[b];
                flag=b;
            }
        }
        else{
            mp.insert(pair<int,int>(b,1)); 
        }
    }
    cout<<flag<<endl;
    } 
}

 

以上是关于[kuangbin带你飞] 基础DP 题集的主要内容,如果未能解决你的问题,请参考以下文章

算法系列学习[kuangbin带你飞]专题十二 基础DP1 G - 免费馅饼

算法系列学习状压dp [kuangbin带你飞]专题十二 基础DP1 D - Doing Homework

[kuangbin带你飞]专题十二 基础DP1 B - Ignatius and the Princess IV

kuangbin带你飞---数论基础

算法系列学习DP和滚动数组 [kuangbin带你飞]专题十二 基础DP1 A - Max Sum Plus Plus

算法系列学习[kuangbin带你飞]专题十二 基础DP1 C - Monkey and Banana