传送门

题意:

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. 2020周阳SpringCloud完整版笔记--一

    微服务架构入门 微服务 的概念最早产生于Martin Fowler在2014年的一篇论文中. 微服务架构是一种架构模式,他提倡将单一应用程序划分成一组小的服务,服务与服务之间互相协调.相互配合,为用户 ...

  2. 比较Power BI和Tableau,好比用奔驰对比奥迪

    经常会有人问Power BI和Tableau的区别,好吧,为了非IT专业的能看懂,咱们就用车,奔驰和奥迪来对比一下.因为他们确实有太多相似之处. 所以Power BI VS Tableau,就相当于国 ...

  3. 【Oracle】11g direct path read介绍:10949 event、_small_table_threshold与_serial_direct_read

    转自刘相兵老师的博文: http://www.askmaclean.com/archives/11g-direct-path-read-10949-_small_table_threshold-_se ...

  4. SDUST数据结构 - chap9 排序

    判断题: 选择题: 编程题: 7-1 排序: 输入样例: 11 4 981 10 -17 0 -20 29 50 8 43 -5 输出样例: -20 -17 -5 0 4 8 10 29 43 50 ...

  5. CTFshow-萌新赛逆向_flag白给

    查看题目信息 下载后得到一个flag.exe文件,进行测试 使用PEiD查壳 发现一个upx的壳 使用命令进行解壳 upx -d 拿到一个无壳的程序 放进OD打开,查找关键词 发现信息 成功拿到序列号 ...

  6. oracle关闭监听log.xml文件生成步骤

    1.查看sqlnet.ora文件是否存在 cd $ORACLE_HOME/network/admin ls 如果不存在,copy一个过来 cp samples/sqlnet.ora . 2.修改sql ...

  7. uni-app开发经验分享六:页面跳转及提示框

    在我们开发的uni-app的过程中,页面跳转及提示框往往是我们做数据交互及结果反馈所要使用的功能,这里分享下我收集的一些方法及看法. 一:页面跳转 事件跳转 :指通过tap等事件来实现页面的跳转,跳转 ...

  8. uni-app开发经验分享五: 解决三端页面兼容问题的方法

    在做uni-app开发的过程中,我们最头疼可能不是开发的过程中的逻辑,而是最后要做的三端兼容测试和修改,在我开发的项目中,这一步都是最头疼和令人头秃的过程,这里总结一些个人开发遇到的问题,希望对大家有 ...

  9. CSSmargin击穿问题(子元素margin-top会影响父元素)

    最近写一个H5页面的时候发现了这个被忽视的问题,一时没想到什么原因,搜了半天,记录一下,方便他人踩坑.唉,有些东西不用就忘. 一.问题描述 <div class="container& ...

  10. 抓包一张tcpdump小抄就够了

    作者简介 李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络等. ...