【题目】

B. Lost Array

【描述】

Bajtek有一个数组x[0],x[1],...,x[k-1]但被搞丢了,但他知道另一个n+1长的数组a,有a[0]=0,对i=1,2,...,n。由此可以找到数组x[0],x[1],...,x[k-1]的一些可能情况,即满足这个关系的数组x[0],x[1],...,x[k-1]。问一共有多少种可能的数组x[0],x[1],...,x[k-1]的长度k,输出可能的数量以及所有可能的长度k。

数据范围:1<=n<=1000,1<=a[i]<=10^6(这里不包括a[0],默认a[0]=0)

【思路】

先不考虑数组x是循环的,即不考虑数组x是有限长的,那么由数组a可以反解出与数组a等长的一个数组“x”,我们要找的真正的数组x实际上是这个反解出来的“x”的一个周期,我们要找的就是这个“x”有多少种周期长度。

要验证i是不是“x”的一个周期长度,则将“x”的元素分为i组,即下标模i相同的分到一组,检查每一组从前往后数第某个元素是不是都是相同的。这里复杂度是O(n)的。

对i进行枚举,即可找到所有可能的周期长度。至此复杂度为O(n^2)。

【我的实现】

复杂度:O(n^2)

 1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <cstring>
5
6 using namespace std;
7 #define MaxN 1020
8 int x[MaxN];
9 int Ans[MaxN];
10
11 int main()
12 {
13 int n;
14 int a, pre_a = 0;
15 int i, j, k;
16 //int cur;
17 bool flag;
18 scanf("%d", &n);
19 for(i = 1; i <= n; i++)
20 {
21 scanf("%d", &a);
22 x[i-1] = a - pre_a;
23 pre_a = a;
24 }
25 for(i = 1; i <= n; i++) //step = i
26 {
27 flag = false;
28 for(j = 0; j < i; j++) //start at j for each zhouqi
29 {
30 for(k = j; k < n; k += i)
31 {
32 if(k > j && x[k] != x[k-i])
33 {
34 flag = true;
35 break;
36 }
37 }
38 if(flag)
39 break;
40 }
41 if(!flag)
42 Ans[++Ans[0]] = i;
43 }
44 printf("%d\n", Ans[0]);
45 for(i = 1; i <= Ans[0]; i++)
46 printf("%d ", Ans[i]);
47 return 0;
48 }

【评测结果】

[题解]Codeforces Round #519 - B. Lost Array的更多相关文章

  1. [题解]Codeforces Round #519 - D. Mysterious Crime

    [题目] D. Mysterious Crime [描述] 有m个n排列,求一共有多少个公共子段. 数据范围:1<=n<=100000,1<=m<=10 [思路] 对于第一个排 ...

  2. [题解]Codeforces Round #519 - C. Smallest Word

    [题目] C. Smallest Word [描述] IA有一个由若干个'a'和'b'组成的字符串,IA可以翻转该字符串的任意长的前缀,IA想通过这样的操作得到一个字典序最小的字符串,求一种可能的翻转 ...

  3. [题解]Codeforces Round #519 - A. Elections

    [题目] A. Elections [描述] Awruk和Elodreip参加选举,n个人投票,每个人有k张票,第i个人投a[i]张票给Elodreip,投k-a[i]张票给Awruk.求最小的k,使 ...

  4. Codeforces Round #519 by Botan Investments(前五题题解)

    开个新号打打codeforces(以前那号玩废了),结果就遇到了这么难一套.touristD题用了map,被卡掉了(其实是对cf的评测机过分自信),G题没过, 700多行代码,码力惊人.关键是这次to ...

  5. Codeforces Round #519 by Botan Investments

    Codeforces Round #519 by Botan Investments #include<bits/stdc++.h> #include<iostream> #i ...

  6. [Educational Codeforces Round 63 ] D. Beautiful Array (思维+DP)

    Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array time limit per test 2 seconds ...

  7. [题解] Codeforces Round #549 (Div. 2) B. Nirvana

    Codeforces Round #549 (Div. 2) B. Nirvana [题目描述] B. Nirvana time limit per test1 second memory limit ...

  8. Codeforces Round #519 题解

    A. Elections 题意概述 给出 \(a_1, \ldots, a_n\),求最小的 \(k (k \ge \max a_i)\), 使得 \(\sum_{i=1}^n a_i < \s ...

  9. 【 Codeforces Round #519 by Botan Investments B】Lost Array

    [链接] 我是链接,点我呀:) [题意] [题解] 枚举k 不难根据a得到x[0..k-1] 然后再根据a[k+1..n]来验证一下得到的x是否正确就好. [代码] #include <bits ...

随机推荐

  1. golang中的异常处理

    1. defer是go提供的一种资源处理的方式.defer的用法遵循3个原则在defer表达式被运算的同时,defer函数的参数也会被运算.如下defer的表达式println运算的同时,其入参i也会 ...

  2. 字节跳动的一道python面试题

    #!/usr/bin/python #coding=utf-8 #好好学习,天天向上 lst = ['hongkong','xiantyk','chinat','guangdong','z'] lst ...

  3. Vue3中的响应式对象Reactive源码分析

    Vue3中的响应式对象Reactive源码分析 ReactiveEffect.js 中的 trackEffects函数 及 ReactiveEffect类 在Ref随笔中已经介绍,在本文中不做赘述 本 ...

  4. SpringCloud整合Hystrix

    1.Hystrix简介 Hystrix是由Nefflix开源的一个延迟和容错库,用于隔离访问远程系统.服务或第三方库,防止级联失败,从而提升系统的可用性.容错性与局部应用的弹性,是一个实现了超时机制和 ...

  5. Redis学习笔记(三)redis 的键管理

    Redis 的键管理 一.Redis 数据库管理 Redis 是一个键值对(key-value pair)的数据库服务器,其数据保存在 src/server.h/redisDb 中(网上很多帖子说在 ...

  6. CSP2019 Day2T2 划分

    很显然有一个暴力 \(dp\),令 \(dp_{i, j}\) 表示最后一次划分在 \(i\) 上次划分在 \(j\) 的最小花费,令 \(S_i = \sum\limits_{j = 1} ^ i ...

  7. JS中的堆内存与栈内存

    在js引擎中对变量的存储主要有两种位置,堆内存和栈内存. 和java中对内存的处理类似,栈内存主要用于存储各种基本类型的变量,包括Boolean.Number.String.Undefined.Nul ...

  8. Activity的生命周期 (必须掌握)

      onCreate 方法 当Activity第一次启动的时候调用   onDestroy 方法 当Activity销毁的时候调用   onStart() 方法 当Activity变成可见的时候调用  ...

  9. lua语言:string

    转载请注明来源:https://www.cnblogs.com/hookjc/ 字符串库函数string.len(s)          返回字符串s的长度:string.rep(s, n)      ...

  10. finally块

    /* finally 块: finally块的 使用前提是必须要存在try块才能使用. finally块的代码在任何情况下都会执行的,除了jvm退出的情况. finally非常适合做资源释放的工作,这 ...