传送门

题意:

t组输入,之后每组例子有三个数n、x、y代表在一个以x为开头y为结尾的长为n的数组里面,开头和结尾数据已经固定,让你从1——n中找其他数据填入数组中

(每个数据不能重复使用),使它满足abs(v[i+1]-v[i])>=2(i<=n-1) ,问有多少中排序可以满足这个情况

题解:

先暴力打出一组数据

这是n=11的时候

i表示x,j表示y

 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

之后就是从中找规律(把它弄成一个表格更好找)

对于x==1这种的

先赋初值v[y==2]=1,v[y==3]=1,v[y==4]=1,v[y==1]=0

之后的规律就是v[i]=v[i-1]+v[i-3]

这种是x==1的,那么x!=1的时候

如果y不是n的时候答案在

v[y-x]

y==n的时候就是

v[y-x+1]

这就是规律(真难找T_T)

代码:

 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 }

2019 Multi-University Training Contest 5——permutation 2的更多相关文章

  1. 2019 Nowcoder Multi-University Training Contest 4 E Explorer

    线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...

  2. 2019 Nowcoder Multi-University Training Contest 1 H-XOR

    由于每个元素贡献是线性的,那么等价于求每个元素出现在多少个异或和为$0$的子集内.因为是任意元素可以去异或,那么自然想到线性基.先对整个集合A求一遍线性基,设为$R$,假设$R$中元素个数为$r$,那 ...

  3. 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 A. fraction upsolved 题意 输入 \(x,p\),输出最小的 \(b\) 使得 \(bx\%p&l ...

  4. HDU校赛 | 2019 Multi-University Training Contest 5

    2019 Multi-University Training Contest 5 http://acm.hdu.edu.cn/contests/contest_show.php?cid=852 100 ...

  5. 2019 Multi-University Training Contest 8

    2019 Multi-University Training Contest 8 C. Acesrc and Good Numbers 题意 \(f(d,n)\) 表示 1 到 n 中,d 出现的次数 ...

  6. 2019 Multi-University Training Contest 7

    2019 Multi-University Training Contest 7 A. A + B = C 题意 给出 \(a,b,c\) 解方程 \(a10^x+b10^y=c10^z\). tri ...

  7. 2019 Multi-University Training Contest 1

    2019 Multi-University Training Contest 1 A. Blank upsolved by F0_0H 题意 给序列染色,使得 \([l_i,r_i]\) 区间内恰出现 ...

  8. 2019 Multi-University Training Contest 2

    2019 Multi-University Training Contest 2 A. Another Chess Problem B. Beauty Of Unimodal Sequence 题意 ...

  9. HDU校赛 | 2019 Multi-University Training Contest 6

    2019 Multi-University Training Contest 6 http://acm.hdu.edu.cn/contests/contest_show.php?cid=853 100 ...

随机推荐

  1. 【高级排序算法】1、归并排序法 - Merge Sort

    归并排序法 - Merge Sort 文章目录 归并排序法 - Merge Sort nlogn 比 n^2 快多少? 归并排序设计思想 时间.空间复杂度 归并排序图解 归并排序描述 归并排序小结 参 ...

  2. [mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value

    转载自:http://www.cnblogs.com/joeblackzqq/p/4526589.html From: http://m.blog.csdn.net/blog/langkeziju/1 ...

  3. 修改conda和pip源

    修改conda源为中科大源 Windows修改C:\Users\user(user替换为当前登陆系统的用户)目录下的.condarc文件 Linux修改家目录下的.condarc文件 channels ...

  4. +load和+initialize方法调用时机

    一.+load方法什么时候调用 +load方法会在runtime加载类.分类时调用(程序运行起来会先去加载调用+load 跟你引用没有引用其头文件没有关系).每个类.分类的+load,在程序运行过程中 ...

  5. CWE 4.3:强化你的数据自我保护能力

    摘要:如何通过软件自动的检查法规中涉及的数据保护, 新版的CWE 4.3 给出了一个解决途径. 1. 按照惯例,先说故事 用12月初在深圳参加的"全球C++及系统软件技术大会"里C ...

  6. 输入5V,输出5V限流芯片,4A限流,短路保护

    USB限流芯片,5V输入,输出5V电压,限流值可以通过外围电阻进行调节,PWCHIP产品中可在限流范围0.4A-4.8A,并具有过压关闭保护功能. 过压关闭保护: 如芯片:PW1555,USB我们一半 ...

  7. 欢迎来到 ZooKeeper 动物世界

    本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费有趣.入门级的 ZooKeeper 开源教程,面向有编程基础的新手. Zo ...

  8. js实现简单的俄罗斯方块小游戏

    js实现简单的俄罗斯方块小游戏 开始 1. 创建一个宽为 200px,高为 360px 的背景容器 <!DOCTYPE html> <html lang="en" ...

  9. JavaScript中的Promise【期约】[未完成]

    JavaScript中的Promise[期约] 期约主要有两大用途 首先是抽象地表示一个异步操作.期约的状态代表期约是否完成. 比如,假设期约要向服务器发送一个 HTTP 请求.请求返回 200~29 ...

  10. Mysql数据库下InnoDB数据引擎下的事务详解

    一.什么是数据库事务? 数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位.事务由事务开始与事务结束之 ...