hdu 5174 Ferries Wheel
摩天轮是一个环,周围围绕着一些缆车。每个缆车按顺序编号为1,2,3...K-1,K1,2,3...K−1,K而且每个缆车也拥有一个唯一的值且保证A[i-1] < A[i] < A[i+1](1 < i < K)A[i−1]<A[i]<A[i+1](1<i<K);

Misaki 邀请NN个朋友去做摩天轮,每个朋友都进入一个缆车,如果哪个朋友满足:"(他的缆车的值+左边一个缆车的值)%INT_MAX=右边一个缆车的值",那么可以得到Misaki的一个吻,第1个缆车的左边是第KK个车,右边是第2个车,第KK个车的左边是第k-1k−1个,右边是第1个. 请帮Misaki计算一下她要吻多少次。你可以假设当所有人进入缆车后,没有空缆车,一个车装有多个朋友也是合法的.
多组测试数据
每组测试数据第一行一个NN表示有NN个朋友。
第二行有NN个整数,val[i]val[i]表示第ii个朋友的缆车的值。
1<=n<=1001<=n<=100;
0<=val[i]<=0<=val[i]<= INT_MAX INT_MAX 为 21474836472147483647
对于每组测试数据,输出Case #x: answer; 如果只有一个缆车,输出-1.
3
1 2 3
5
1 2 3 5 7
6
2 3 1 2 7 5
Case #1: 1
Case #2: 2
Case #3: 3
对于第三个样例,当他们进入缆车后,缆车的值是{{1},{2}, {3}, {5}, {7}},但第二个缆车有两个朋友,所以答案是3.
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <map>
typedef long long LL;
using namespace std;
const int Max=;
const int MOD=;
struct node
{
LL value,num;
node(int xx,int yy):value(xx),num(yy){}
node(){}
bool operator < (const node &another) const
{
return value<another.value;
}
}a[Max];
map<int,int>book;
map<int,int>idx;
int main()
{
int n,ca=,x,y;LL sum;
while(~scanf("%d",&n))
{
book.clear();
idx.clear();
int top=,wei;
for(int i=;i<n;i++)
{
scanf("%d",&x);
book[x]++;
if(book[x]==)
{
a[top].value=x;
a[top].num=;
idx[x]=top;
top++;
}
else
{
wei=idx[x];
a[wei].num=book[x];
}
}
if(top==) {printf("Case #%d: -1\n",ca++);continue;}
sort(a,a+top);
int ans=;
for(int i=;i<top;i++)
{
// cout<<a[i].value<<" ";
if(i==)
{
sum=a[n-].value+a[].value;
if(sum%MOD==a[].value) ans+=a[].num;
}
else if(i==n-)
{
sum=a[n-].value+a[n-].value;
if(sum%MOD==a[].value) ans+=a[n-].num;
}
else
{
sum=a[i-].value+a[i].value;
if(sum%MOD==a[i+].value) ans+=a[i].num;
}
}
printf("Case #%d: %d\n",ca++,ans);
}
return ;
}
hdu 5174 Ferries Wheel的更多相关文章
- hdu 5174(计数)
Ferries Wheel Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- Valentine's Day Round 1001.Ferries Wheel(hdu 5174)解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5174 题目意思:给出 n 个人坐的缆车值,假设有 k 个缆车,缆车值 A[i] 需要满足:A[i−1] ...
- HDU 5174
题意有点不明白,因为MAX为int最大值,推测为64位,AC #include <cstdio> #include <iostream> #include <cstrin ...
- hdu 5175(数论)
Misaki's Kiss again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- BestCoder Valentine's Day Round
昨晚在开赛前5分钟注册的,然后比赛刚开始就掉线我就不想说了(蹭网的下场……),只好用手机来看题和提交,代码用电脑打好再拉进手机的(是在傻傻地用手机打了一半后才想到的办法). 1001,也就是 hdu ...
- Misaki's Kiss again(hdu5175)
Misaki's Kiss again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- hdu 4424 & zoj 3659 Conquer a New Region (并查集 + 贪心)
Conquer a New Region Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 3461 Code Lock(并查集+二分求幂)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3461 A lock you use has a code system to be opened in ...
- hdu 1038 Biker's Trip Odometer(水题)
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1038 Biker's Trip Odometer Time Limit: 2000/1000 MS ...
随机推荐
- 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 数据库连接不释放测试 连接池 释放连接 关闭连接 有关 redis-py 连接池会导致服务器产生大量 CLOSE_WAIT 的再讨论以及一个解决方案
import pymysqlfrom redis import Redisimport time h, pt, u, p, db = '192.168.2.210', 3306, 'root', 'n ...
- sed 之 模式空间 & 保持空间
模式空间:容纳当前输入行的缓冲区: 保持空间:作为辅助的一个缓冲区,可以和模式空间进行交互,但是命令不能直接作用于保持空间. 由上面定义可以知道,模式空间和保持空间是两个独立的缓冲区,可以进行交互,命 ...
- Java中去除字符串中的空格
1.去掉首尾的空格 String.trim() trim()是去掉首尾空格 2.去掉所有的空格 str.replace(" ", ""); 去掉所有空格,包括 ...
- hdoj--1205--吃糖果(规律)
吃糖果 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Sub ...
- YES,IT IS
- Luogu3674小清新人渣的本愿
https://zybuluo.com/ysner/note/1109536 题面 给你一个序列a,长度为n,有m次操作,每次询问一个区间 是否可以选出两个数它们的差为x 是否可以选出两个数它们的和为 ...
- 91. Ext中获取combobox中的valueField和displayField的值
转自:https://blog.csdn.net/jcy472578/article/details/42113119Ext.getCmp("schemaVersion").val ...
- [Swift通天遁地]六、智能布局-(8)布局框架的使用:多分辨率适配和横竖屏布局
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Linux下查看CPU和内存(很详细)
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...
- C#最实用的快捷键
Ctrl+J(Alt+→):智能提示. Ctrl+X:删除整行. Shift+Alt+Enter:全屏切换 F12:跳转到定义. Ctrl+-.Ctrl+Shift+-:上一步.下一步(仅限于使用过上 ...