2019 Multi-University Training Contest 5——permutation 2

Portal

Meaning of the questions:

t set of inputs, there are three examples of each group after the number n, x, y represent a beginning y to x is the length ending inside n array, beginning and end of the data has been fixed, so you from 1-- find n, other data into an array

(Can not be reused for each data), it satisfies abs (v [i + 1] -v [i])> = 2 (i <= n-1), asked how many cases fulfill this sort

 

answer:

First violence to hit a set of data

This is when n = 11

i represents x, j y represents

 1 i:1 j:2 sum:1
 2 i:1 j:3 sum:1
 3 i:1 j:4 sum:1
 4 i:1 j:5 sum:2
 5 i:1 j:6 sum:3
 6 i:1 j:7 sum:4
 7 i:1 j:8 sum:6
 8 i:1 j:9 sum:9
 9 i:1 j:10 sum:13
10 i:1 j:11 sum:28
11 
12 i:2 j:3 sum:0
13 i:2 j:4 sum:1
14 i:2 j:5 sum:1
15 i:2 j:6 sum:1
16 i:2 j:7 sum:2
17 i:2 j:8 sum:3
18 i:2 j:9 sum:4
19 i:2 j:10 sum:6
20 i:2 j:11 sum:13
21 
22 i:3 j:4 sum:0
23 i:3 j:5 sum:1
24 i:3 j:6 sum:1
25 i:3 j:7 sum:1
26 i:3 j:8 sum:2
27 i:3 j:9 sum:3
28 i:3 j:10 sum:4
29 i:3 j:11 sum:9
30 
31 i:4 j:5 sum:0
32 i:4 j:6 sum:1
33 i:4 j:7 sum:1
34 i:4 j:8 sum:1
35 i:4 j:9 sum:2
36 i:4 j:10 sum:3
37 i:4 j:11 sum:6
38 
39 i:5 j:6 sum:0
40 i:5 j:7 sum:1
41 i:5 j:8 sum:1
42 i:5 j:9 sum:1
43 i:5 j:10 sum:2
44 i:5 j:11 sum:4
45 
46 i:6 j:7 sum:0
47 i:6 j:8 sum:1
48 i:6 j:9 sum:1
49 i:6 j:10 sum:1
50 i:6 j:11 sum:3
51 
52 i:7 j:8 sum:0
53 i:7 j:9 sum:1
54 i:7 j:10 sum:1
55 i:7 j:11 sum:2
56 
57 i:8 j:9 sum:0
58 i:8 j:10 sum:1
59 i:8 j:11 sum:1
60 
61 i:9 j:10 sum:0
62 i:9 j:11 sum:1
63 
64 i:10 j:11 sum:1

After which is to find the law (it ended up looking for a better table)

For this kind of x == 1

First initial value v [y == 2] = 1, v [y == 3] = 1, v [y == 4] = 1, v [y == 1] = 0

After the rule is v [i] = v [i-1] + v [i-3]

 

This is x == 1, then x! = 1 when

If y is not the time to answer n

v[y-x]

y == n, it is the

v[y-x+1]

 

This is the law of (really hard to find T_T)

 

Code:

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6 typedef long long ll;
 7 const int maxn=1e5+10;
 8 const int mod = 998244353;
 9 ll v[maxn];
10 int main()
11 {
12     v[1]=0;
13     v[4]=v[2]=v[3]=1;
14     for(ll i=5;i<=1e5;++i)
15     {
16         v[i]=(v[i-1]+v[i-3])%mod;
17     }
18     ll t;
19     scanf("%lld",&t);
20     while(t--)
21     {
22         ll n,x,y;
23         scanf("%lld%lld%lld",&n,&x,&y);
24         if(x==1)
25         {
26             if(y==n)
27                 printf("%lld\n",v[n+1]);
28             else printf("%lld\n",v[y]);
29         }
30         else
31         {
32             if(y==n)
33                 printf("%lld\n",v[y-x+1]);
34             else printf("%lld\n"v [y- x]);
35          }
 36      }
 37      return  0 ;
38 }
View Code

 

Guess you like

Origin www.cnblogs.com/kongbursi-2292702937/p/11304514.html