Problem Description:
1140. Look-and-say Sequence time limit (ms)
Memory Limit 65536 KB
Code length limit 16000 B
Program Standard author CHEN, Yue
Look-and-say sequence is a sequence of integers as the following:
D, D1, D111, D113, D11231, D112213111, ...
where D is in [0, 9] except 1. The (n+1) St number is a kind of description of the nth number. For example, the 2nd number means this there is one D in the 1st number, and hence it is D1; The 2nd number consists of one D (corresponding to D1) and one 1 (corresponding to one), therefore the 3rd number is D111; or since the 4th number is D113, it consists of one D, and both 1 ' s, and one 3, so the next number must be D11231. This definition works for D = 1 as well. Now is supposed to calculate the Nth number in a look-and-say sequence of a given digit D.
Input Specification:
Each input file contains one test case, which gives D (in [0, 9]) and a positive an integer N (<=40), separated by a space .
Output Specification:
Print in a line the Nth number in a look-and-say sequence of D. Sample Input:
1 8
Sample Output:
1123123111
Remember March 18 Pat out of X1
The key to this problem is to understand the test instructions, after understanding it is not difficult ...
AC Code:
1
2
3
4
5
6
7
8
9
30 of each of the above.
37 off |
#include <bits/stdc++.h>
using namespace std;
int main ()
{
// freopen ("Data1.txt", "R", stdin);
Ios::sync_with_stdio (false);
Vector<int> v;
int n,m;
cin>>n>>m;
m--;
V.push_back (n);
for (; m--;)
{
vector<int> v0;
int v00=v[0];
int ii=1;
for (int i=1;i<v.size (); i++)
{
if (v[i]!=v00)
{
v0.push_back (v00);
V0.push_back (ii);
V00=v[i];
Ii=1;
}
else
ii++;
}
V0.push_back (v00);
V0.push_back (ii);
v=v0;
}
for (auto i:v)
cout<<i;
return 0;
} |