【HDU】4908 (杭电 BC #3 1002题)BestCoder Sequence ——哈希
BestCoder Sequence
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 573    Accepted Submission(s): 201
Mr Potato is the BestCoder.
One night, an amazing sequence appeared in his dream. Length of this sequence is odd, the median number is M, and he named this sequence as Bestcoder Sequence.
As the best coder, Mr potato has strong curiosity, he wonder the number of consecutive sub-sequences which are bestcoder sequences in a given permutation of 1 ~ N.
For each test case, there is a pair of integers N and M in the first line, and an permutation of 1 ~ N in the second line.
[Technical Specification]
1. 1 <= N <= 40000
2. 1 <= M <= N
3
For the second case, {3},{5,3,2},{4,5,3,2,1} are Bestcoder Sequence.
#include <cstdio>
#include <cstring> const int LEN = ; int arr[LEN];
int table1[LEN];
int table2[LEN]; int main()
{
int n, m;
while(scanf("%d %d", &n, &m) != EOF){
memset(table1, , sizeof(table1));
memset(table2, , sizeof(table2));
int t = -;
for(int i = ; i < n; i++){ //读入并记录m的位置
scanf("%d", arr+i);
if (arr[i] == m)
t = i;
}
int ans = ;
if (t != -) //如果m不在序列中则ans = 0 否则为1,即只有他本身时的情况
ans = ;
int ma = ;
int mi = ;
for(int i = t-; i >= ; i--){
if (arr[i] < arr[t])
mi++;
else
ma++;
int tmp = ma - mi; //哈希记录tmp。
if (tmp < )
table1[-tmp]++;
else
table2[tmp]++;
if (ma == mi) //特判t = 0的情况
ans++;
} ma = ;
mi = ;
for(int i = t+; i < n; i++){
if (arr[i] < arr[t])
mi++;
else
ma++;
int tmp = mi - ma;
if (tmp < )
ans += table1[-tmp]; //查询有没有出现过,若有,则加上出现的次数
else
ans += table2[tmp];
if (ma == mi) //特判t = 0
ans++;
}
printf("%d\n", ans);
}
return ;
}
【HDU】4908 (杭电 BC #3 1002题)BestCoder Sequence ——哈希的更多相关文章
- 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过
		杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ... 
- 2014/08/24——升级stepbystep修复tc不刷新问题并加入杭电bc
		问题: 自从tc站点升级以后做题统计的tc一栏就不刷新了,为此全哥也更新了一下stepbystep的配置文件什么的,我仅仅要将其挂到server上即可了. 由于加了杭电的bc,看来这事儿不easy.还 ... 
- HDU 4901(杭电多校训练#3 1005题)The Romantic Hero(DP)
		题目地址:HDU 4901 这题没想到最后竟然可以做出来.. .. 这题用了两次DP,先从前往后求一次异或的.再从后往前求一次与运算的. 各自是 1:求异或的时候,定义二维数组huo[1000][10 ... 
- HDU 4968(杭电多校#9  1009题)Improving the GPA (瞎搞)
		题目地址:HDU 4968 这题的做法是全部学科的学分情况枚举,然后推断在这样的情况下是否会符合平均分. 直接暴力枚举就可以. 代码例如以下: #include <cstring> #in ... 
- HDU 4970(杭电多校#9  1011题)Killing Monsters(瞎搞)
		题目地址:HDU 4970 先进行预处理.在每一个炮塔的火力范围边界标记一个点. 然后对每一个点的伤害值扫一遍就能算出来. 然后在算出每一个点到终点的总伤害值,并保存下来,也是扫一遍就可以. 最后在询 ... 
- HDU 6610 Game — 2019第三场杭电多校 1008题
		目录 题意 思路 AC_Code @(hdu 6610) 题意 大概说一下我理解的题意... 链接:here 你有\(n\)堆石子,每堆石子有\(a_i\)个石子.游戏规则:\(Alice\)先选择一 ... 
- HDU 献给杭电五十周年校庆的礼物  1290  递推
		题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1290 题目大意: n刀最多可以把一块蛋糕切多少块 题目分析: 假如我们按照立体考虑的话,这题就非常不 ... 
- 【单调栈】hdu 6319 杭电多校Problem A. Ascending Rating
		http://acm.hdu.edu.cn/showproblem.php?pid=6319 从后往前更新,维护一个递减单调栈(队列) 最近很多题都是单调栈... #define _CRT_SECUR ... 
- HDU6655 Just Repeat(2019杭电多校J题)
		原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6655 简单博弈问题,A,B手里各有n,m张牌,牌有颜色,两人轮流出牌(A先出),一个人只能打出对放未打 ... 
随机推荐
- jQuery无缝滚动向上
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- php之文件基础操作
			在php中对文件的基础操作非常的简单,php提供的函数粗略的用了一遍. file_get_contents():可以获取文件的内容获取一个网络资源的内容,这是php给我封装的一个比较快捷的读取文件的内 ... 
- Asp.net Mvc 中的模型绑定
			asp.net mvc中的模型绑定可以在提交http请求的时候,进行数据的映射. 1.没有模型绑定的时候 public ActionResult Example0() { ) { string id ... 
- Linux03--文件打包与解压
			参考了<鸟哥的Linux私房菜> 1.压缩命令 gzip(压缩)与zcat(解压并读出来) gzip 可以说是应用度最广的压缩命令了!目前 gzip 可以解开 compress, zip ... 
- JAVA可变参数实例
			public class Kebiancanshu { public static void main(String[] args) { System.out.println(average(8, 2 ... 
- 论山寨手机与Android联姻 【1】MTK亮相的历史背景
			[1]MTK亮相的历史背景如果说1960年代是大型机(Mainframe)的时代,1970年代是小型机(Microcomputer)的时代,那么1980年代无疑是个人电脑(PC)的时代,而1990年代 ... 
- [转]Net Framework引路蜂地图开发示例
			From:http://www.2cto.com/kf/201207/140421.html 引路蜂地图也提供对.Net Framework平台的支持,可以开发桌面地图应用,由于Mono C#的跨平台 ... 
- 【转载】详解java类的生命周期
			原文地址:http://blog.csdn.net/zhengzhb/article/details/7517213 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑, ... 
- ruby on rails出现的问题ActiveModel::ForbiddenAttributesError
			首先分清楚我们在搞rails时.看资料和所使用的环境的版本号是否同样.看的资料是rails3.2,电脑配置的环境是4.0,就会出现这样的安全防范措施的问题. 这类问题大多出如今new或者create两 ... 
- 利用VS自带的命令行工具查看和生产PublicKeyToken (转)
			使用VS2013(或其他版本)命令行工具,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命 名,则不会有PublicKeyT ... 
