ACM程序设计选修课——1043: Radical loves integer sequences(YY)
1043: Radical loves integer sequences
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 36 Solved: 4
[Submit][Status][Web
Board]
Description
Input
The first line contains integer n (1 ≤ n ≤ 105).
The next line contains integers a1, a2, ..., an (1 ≤ ai ≤ 105).
The numbers are separated by spaces.
Output
exactly once in the sequence, px must equal 0).
Sample Input
1
3
4
9 9 3 5
Sample Output
1
3 0
3
3 0
5 0
9 1
这题前几次看真心没看懂,今天下午看了一下,发现是判断同一个数字出现的下标是否是等差数列,是则输出公差,否则则不输出。
没什么算法,就是记录时判断麻烦点..
代码:
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<cmath>
#include<queue>
#include<set>
#include<map>
bool ok[100009];
int mop[100009];
int step[100009];
int pos[100009];
using namespace std;
int main (void)
{
int t,i,j,n,tstep,cnt;
while (~scanf("%d",&n))
{
memset(ok,0,sizeof(ok));//判断改数是否存在等差数列
memset(mop,0,sizeof(mop));//记录该数的出现次数
memset(step,0,sizeof(step));//记录该数的公差
memset(pos,0,sizeof(pos));//记录该数的每(前)一次出现的下标pos
tstep=0;
cnt=0;
for (i=1; i<=n; i++)
{
scanf("%d",&t);
mop[t]++;
if(mop[t]>=1)//若出现过
{
if(mop[t]==1)//若此时只有一次
{
ok[t]=1;//暂时可行
cnt++;//暂时可行数+1
pos[t]=i;//此时为第一次出现的位置
step[t]=0;//此时公差为0
}
else if(mop[t]==2)//两次
{
step[t]=i-pos[t];//公差Δd
pos[t]=i;//位置更变
ok[t]=1;//暂时可行
}
else//三次以上
{
tstep=i-pos[t];//临时公差
if(tstep!=step[t])//若不等于此前的公差,则
{
if(ok[t])//若此前没有被减掉
cnt--;//减掉该数
ok[t]=0;//变为不可行
}
pos[t]=i;//位置变更
}
}
}
printf("%d\n",cnt);
for (i=1; i<=100000; i++)
{
if(ok[i])
{
if(mop[i]==1)
{
printf("%d %d\n",i,0);
}
else
{
printf("%d %d\n",i,step[i]);
}
}
}
}
return 0;
}
ACM程序设计选修课——1043: Radical loves integer sequences(YY)的更多相关文章
- ACM程序设计选修课——1018: Common Subsequence(DP)
问题 L: Common Subsequence 时间限制: 1 Sec 内存限制: 32 MB 提交: 70 解决: 40 [提交][状态][讨论版] 题目描述 A subsequence of ...
- ACM程序设计选修课——1057: Beautiful Garden(模拟+耐心调试)
1057: Beautiful Garden Time Limit: 5 Sec Memory Limit: 128 MB Submit: 25 Solved: 12 [Submit][Statu ...
- ACM程序设计选修课——1040: Alex and Asd fight for two pieces of cake(YY+GCD)
1040: Alex and Asd fight for two pieces of cake Time Limit: 1 Sec Memory Limit: 128 MB Submit: 27 ...
- ACM程序设计选修课——Problem E:(ds:图)公路村村通(Prim)
问题 E: (ds:图)公路村村通 时间限制: 1 Sec 内存限制: 128 MB 提交: 9 解决: 5 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本, ...
- ACM程序设计选修课——Problem F:(ds:图)旅游规划(优先队列+SPFA)
问题 F: (ds:图)旅游规划 时间限制: 1 Sec 内存限制: 128 MB 提交: 14 解决: 4 题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路 ...
- ACM程序设计选修课——Problem E:(ds:图)公路村村通(优先队列或sort+克鲁斯卡尔+并查集优化)
畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- ACM程序设计选修课——Problem D: (ds:树)合并果子(最优二叉树赫夫曼算法)
Problem D: (ds:树)合并果子 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 80 Solved: 4 [Submit][Status][ ...
- ACM程序设计选修课——1076汇编语言(重定向+模拟)
1076: 汇编语言 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 34 Solved: 4 [Submit][Status][Web Board] ...
- ACM程序设计选修课——1065: Operations on Grids(暴力字符串)
1065: Operations on Grids Time Limit: 3 Sec Memory Limit: 128 MB Submit: 17 Solved: 4 [Submit][Sta ...
随机推荐
- 禁止MySQL开机自动启动的方法
这几天发现电脑卡机变慢了,还有一些卡,发现每次开机MySQL都会自动启动(明明我安装的时候选择了不开机自启,任务管理器启动列表中也没有,但就是自启了...) 1.打开服务列表 有两种方法,一是快捷键 ...
- Processing一些常用技巧
一些常用技巧总结: Tweak模式 快速查找函数用法 显示与输入中文注释 代码快速对齐 批量添加注释符 Tweak模式 Tweak模式是非常有用的功能,自3.0版本后,它就正式整合到Processin ...
- js 去除数组中的空值以及数组判断是否有重复数据
1.判断是否有重复数据 function isRepeat(array){ var hash = {}; for(var i in array) { if(array[i]!="" ...
- Cross-Entropy Loss 与Accuracy的数值关系(很重要,很好的博客)
http://www.cnblogs.com/dengdan890730/p/6132937.html
- Django 的母板及布局(Bootstrap)
title: Django 的母板及布局(Bootstrap) tags: Django --- Django 的母板及布局(Bootstrap) Django 的母板是作为公共的部分,其他的页面都能 ...
- Linux连接外网
1.给linux配置ip 进行远程管理 如果网络不同的话需要配置网卡,命令如下: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 回车 就出现网络的环 ...
- 01_10_SERVLET如何连接Mysql数据库
01_10_SERVLET如何连接Mysql数据库 1. 实现类 public void doGet(HttpServletRequest request, HttpServletResponse r ...
- Linux下打包解压命令
tar 压缩: tar -cvjpf etc.tar.bz2 /etc //-c为创建一个打包文件,相应的-f后面接创建的文件的名称,使用了.tar.bz2后缀,-j标志使用bzip2压缩,最后面为具 ...
- Qt概念和快捷键
Qt概念和快捷键 Qt简介 1.Qt的由来和发展 Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程 ...
- python入门:输出1-10的所有数
#!/usr/bin/env python # -*- coding:utf-8 -*- #输出1-10的所有数 """ 变量kaishi的赋值为数字1,while 真, ...