51nod1276(xjb)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1276
题意:中文题诶~
思路:xjb
通过画图可以发现对于当前水没过的点,若其为极小值点,则岛屿数目-1,若为极大值点则岛屿数目+1;
可以给海面高度排序,海面高度单调时岛屿的状态也是连续的。
可以给山峰高度排序,避免对于每一个高度海面都遍历一遍才能找到被淹没的山峰。
代码:
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- #include <map>
- using namespace std;
- const int MAXN=1e5+;
- struct node{
- int value, num;
- }gg[MAXN];
- int a[MAXN], b[MAXN], value[MAXN];
- map<int, int> mp;
- bool cmp(node a, node b){
- return a.value<b.value;
- }
- int main(void){
- int n, m, ans=;
- scanf("%d%d", &n, &m);
- for(int i=; i<n; i++){
- scanf("%d", &gg[i].value);
- gg[i].num=i;
- value[i]=gg[i].value;
- }
- for(int i=; i<m; i++){
- scanf("%d", &a[i]);
- }
- memcpy(b, a, sizeof(a));
- sort(gg, gg+n, cmp);
- sort(a, a+m);
- int indx=;
- for(int i=; i<m; i++){
- while(gg[indx].value<=a[i]&&indx<n){
- int cc=gg[indx].num;
- if(cc==||cc==n-){//注意边界情况
- if(cc==){
- if(value[cc]>value[cc+]) ans--;
- }else{
- if(value[cc]>value[cc-]) ans--;
- }
- }else{
- if(value[cc]<value[cc-]&&value[cc]<value[cc+]){
- ans++;
- }else if(value[cc]>value[cc-]&&value[cc]>value[cc+]){
- ans--;
- }
- }
- indx++;
- }
- mp[a[i]]=ans;
- }
- for(int i=; i<m; i++){
- printf("%d\n", mp[b[i]]);
- }
- return ;
- }
51nod1276(xjb)的更多相关文章
- 程设大作业xjb写——魔方复原
鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...
- hdu_5881_Tea(xjb猜)
题目链接:hdu_5881_Tea 题意: 有一壶水, 体积在 L 和 R 之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不 ...
- hdu_5873_Football Games(xjb搞)
题目链接:hdu_5873_Football Games 题意: 有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分 题解: 可以知 ...
- hdu_5761_Rower Bo(xjb猜公式)
题目链接:hdu_5761_Rower Bo 题意: 让你求一个物理问题 题解: xjb猜公式,由题目样例可得,答案为8/7,然后我们可以xjb猜出公式为v1*a/(v1*v1-v2*v2),然后特判 ...
- 隔壁信概大作业xjb写——同化棋ATAXX
话说泥萌北大信科啊,助教是有多懒...去年黑白棋今年同化棋,顺带打ai都不用自己写标程... 好吧..我知道泥萌重点在各种sb的辅助操作上..什么悲剧的可以随时暂停载入...有毒吧 [据说泥萌上课没讲 ...
- [HDU5902]GCD is Funny(xjb搞)
题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少 分析:考虑最优情况: 先拿出三个数,留下两个x,x 再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd ...
- hdu_5927_Auxiliary Set(xjb搞)
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...
- hdu_5813_Elegant Construction(xjb搞)
题目链接:hdu_5813_Elegant Construction 题意: 给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数 ...
- hdu_5805_NanoApe Loves Sequence(xjb搞)
题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误 ...
随机推荐
- SQL创建触发器
更新: CREATE TRIGGER `r_users_1` AFTER UPDATE ON `users` FOR EACH ROW update `wxusers` set status=NEW. ...
- 零基础学python-2.18 异常
这一节说一下异常except 继续沿用上一节的代码.我有益把文件名称字搞错.然后在结尾部分加上异常捕捉: try: handler=open("12.txt")#在这里我特别将文件 ...
- LESS和sa
一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...
- 录音-树莓派USB摄像头话筒
实测可用: sudo arecord --duration=10 --device=plughw:1,0 --format=cd aaa.wav sudo arecord --duration=10 ...
- HDU1133 Buy the Ticket —— 卡特兰数
题目链接:https://vjudge.net/problem/HDU-1133 Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Me ...
- ios 使用json
1.从https://github.com/stig/json-framework/中下载json框架:json-framework 2.解压下载的包,将class文件夹下的所有文件导入到当前工程下. ...
- yii中调取字段名称时label与labelEx的区别
$form = $this->beginWidget('CActiveForm',array('id' => 'userRegisterForm')); echo $form->la ...
- HihoCoder 1640 : 命名的烦恼(预处理)
描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个拉风的名字.他希望这 ...
- http 和 ajax 的关系
经常听到有人混淆两者之间的基本概念,认为只是毫无关系的两种东西. 其实ajax也属于http请求,只不过是http一共有两种请求,一种是同步,一种是异步当然也可以同步那就是ajax. 总所周知hhtp ...
- 算法实现c语言--03
实现 mystrcpy(), mystrcmp(), mystrcat(), mystrlen() ; #include<stdio.h> #include<stdlib.h> ...