国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

hdu 5233 Gunner II 離散化

2019-11-06 06:22:41
字體:
來源:轉載
供稿:網友

題目鏈接:

http://acm.hdu.edu.cn/showPRoblem.php?pid=5233

題意:

有n只鳥,還有n棵樹。第i只鳥站在第i棵樹的頂端。這些樹從左到右排成一條直線。每一棵樹都有它的高度。Jack站在最左邊那棵樹的左邊。當Jack在高度為H的地方向右發射一棵子彈時,站在高度為H的樹上且離Jack最近的鳥兒就會落下來。 Jack會射擊多次,他想知道每次射擊哪只鳥兒會落下來。

題解:

離散化

代碼:

#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst int INF = 0x3f3f3f3f;const ll INFLL = 0x3f3f3f3f3f3f3f3fLL;inline ll read(){ ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}//////////////////////////////////////////////////////////////////////////const int maxn = 2e5+10;struct node{ int x,id;}h[maxn];vector<int> k,dp[maxn];map<int,int> H;int q[maxn],cnt[maxn];void init(){ MS(h); MS(q); MS(cnt); H.clear(); k.clear(); for(int i=0; i<maxn; i++) dp[i].clear();}int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF){ init(); for(int i=0; i<n; i++){ h[i].x = read(); h[i].id = i+1; k.push_back(h[i].x); } for(int i=0; i<m; i++){ q[i] = read(); k.push_back(q[i]); } sort(k.begin(),k.end()); k.erase(unique(k.begin(),k.end()),k.end()); for(int i=0; i<(int)k.size(); i++){ H[k[i]] = i; } for(int i=0; i<n; i++) dp[H[h[i].x]].push_back(h[i].id); for(int i=0; i<m; i++){ if(cnt[H[q[i]]] >= (int)dp[H[q[i]]].size()) cout << -1 << endl; else{ cout << dp[H[q[i]]][cnt[H[q[i]]]] << endl; cnt[H[q[i]]]++; } } } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新源县| 婺源县| 富阳市| 富源县| 绥化市| 阿尔山市| 三河市| 新闻| 黑河市| 南岸区| 屯留县| 大新县| 雅江县| 赣榆县| 柳州市| 安康市| 常德市| 吉首市| 诸城市| 长春市| 五大连池市| 房山区| 安塞县| 登封市| 镇坪县| 天台县| 大埔区| 中阳县| 蕉岭县| 开远市| 旬邑县| 虎林市| 莱芜市| 佳木斯市| 黑山县| 托里县| 蒲江县| 云和县| 峨边| 土默特左旗| 和顺县|