赞
踩
写个博客记录一下菜鸟成长记~
赛后认真总结反思了一下,还是基础不牢固,思路有了要么是细节处理有问题,要么是题意有遗漏。
A:说是规律。。反正我没想到。。还在研究。
B:
You are given an array a consisting of n elements a1, a2, ..., an. Array a has a special property, which is:
ai = ( ai - 1 + 1) % m, for each i (1 < i ≤ n)
You are given the array a with some lost elements from it, each lost element is replaced by -1. Your task is to find all the lost elements again, can you?
Input
The first line contains an integer T, where T is the number of test cases.
The first line of each test case contains two integers n and m (1 ≤ n ≤ 1000) (1 ≤ m ≤ 109), where n is the size of the array, and m is the described modulus in the problem statement.
The second line of each test case contains n integers a1, a2, ..., an ( - 1 ≤ ai < m), giving the array a. If the ith element is lost, then ai will be -1. Otherwise, ai will be a non-negative integer less than m.
It is guaranteed that the input is correct, and there is at least one non-lost element in the given array.
Output
For each test case, print a single line containing n integers a1, a2, ..., an, giving the array a after finding all the lost elements.
It is guaranteed that an answer exists for the given input.
Example
Input
4
5 10
1 2 3 4 5
4 10
7 -1 9 -1
6 7
5 -1 -1 1 2 3
6 10
5 -1 7 -1 9 0
Output
1 2 3 4 5
7 8 9 0
5 6 0 1 2 3
5 6 7 8 9 0
水题:就是根据一个已知的就能推其它的。
代码:
- #include<bits/stdc++.h>
- using namespace std;
- int a[1010];
- int main()
- {
- int t;
- int n,m;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%d%d",&n,&m);
- for(int i=1;i<=n;i++)
- {
- scanf("%d",&a[i]);
- }
- int lala;
- for(int i=1;i<=n;i++)
- {
- if(a[i]!=-1)
- {
- a[i+1]=(a[i]+1)%m;
- lala=i;
- for(int j=i+2;j<=n;j++)
- {
- a[j]=(a[j-1]+1)%m;
- }
- break;
- }
- }
- for(int i=lala-1;i>=1;i--)
- {
- a[i]=a[i+1]-1;
- if(a[i]<0)
- a[i]+=m;
- }
- for(int i=1;i<=n;i++)
- {
- cout<<a[i]<<" ";
- }
- cout<<endl;
- }
- return 0;
- }
C:二分!!!
You are given an array a consisting of n element a1, a2, ..., an. For each element ai you must find another element aj (i ≠ j), such that the summation of ai and aj mod (109 + 7) (i.e. (ai + aj) % (109 + 7)) is as maximal as possible.
Can you help judges by solving this hard problem?
Input
The first line contains an integer T, where T is the number of test cases.
The first line of each test contains an integer n (2 ≤ n ≤ 10
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。