标签:des style http color os io 数据 for
3 5 5 10 1 10 128
Case #1: 22 Case #2: 1023 Case #3: 586
题目大意:
有n组测试数据,接下来n和m,n表示n个指针1~n,分别是 k 下回到起点,问你从n个选出任意多个指针,同时停在起点算1天,1天的时间超过m的方案有多少种?
解题思路:
解题代码:动态规划,状态较分散,所以用Map离散化。
#include <iostream>
#include <cstdio>
#include <map>
#include <set>
using namespace std;
map <int,multiset<int> > mpx;
map <int,multiset<int> > mpy;
int n,m;
int main(){
int a,c;
while(scanf("%d%d",&n,&m)!=EOF && (m||n) ){
mpx.clear();
mpy.clear();
for(int i=0;i<n;i++){
scanf("%d%d",&a,&c);
mpx[a].insert(c);
mpy[c].insert(a);
}
for(int i=0;i<m;i++){
scanf("%d%d",&a,&c);
if(a==0){
printf("%d\n",mpx[c].size() );
for(multiset<int>::iterator it=mpx[c].begin();it!=mpx[c].end();it++){
int y=(*it);
mpy[y].erase(mpy[y].find(c));
}
mpx[c].clear();
}else{
printf("%d\n",mpy[c].size() );
for(multiset<int>::iterator it=mpy[c].begin();it!=mpy[c].end();it++){
int x=(*it);
mpx[x].erase(mpx[x].find(c));
}
mpy[c].clear();
}
}
printf("\n");
}
return 0;
}
HDU 4028 The time of a day(动态规划),布布扣,bubuko.com
HDU 4028 The time of a day(动态规划)
标签:des style http color os io 数据 for
原文地址:http://blog.csdn.net/a1061747415/article/details/38517025