[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