传送门

题意:

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. 【JavaWeb】Servlet 程序

    Servlet 程序 Servlet Servlet 是在 Web 服务器中运行的小型 Java 程序.Servlet 通常通过 HTTP(超文本传输​​协议)接收和响应来自 Web 客户端的请求. ...

  2. spring中的工厂模式

    spring的bean的创建原理就是框架利用反射创建出实例对象 工厂模式:工厂帮我们创建对象:有一个专门帮我们创建对象的类,我们把这个类叫做工厂类. 例如:Plane plane = PlaneFac ...

  3. css全站变灰

    2020年4月4日全国哀悼日这一天,我发现不少网址都变灰了,我第一想法就是怎么做到的?不可能换素材整个网址重做一遍吧?后面发现是用的其实是css的filter滤镜: grayscale可以将图像转化为 ...

  4. 《进击吧!Blazor!》第一章 1.初识 Blazor

    作者介绍 陈超超 Ant Design Blazor 项目贡献者 拥有十多年从业经验,长期基于.Net技术栈进行架构与开发产品的工作,Ant Design Blazor 项目贡献者,现就职于正泰集团 ...

  5. 别再问我们用什么画图的了!问就是excalidraw

    每次发 https://github.com/tal-tech/go-zero 相关文章时,都会有读者问我们用什么画图的. 这图什么工具画的呀?好看! 这个手绘风格真好看,用啥工具画的呀? 可不可以介 ...

  6. Gradle使用及配置

    构建工具:Gradle(6.8) 下载地址:https://gradle.org/releases/ 下载最新版的二进制文件即可,下载"gradle-6.8.1-bin.zip文件,下载后完 ...

  7. torch.optim.SGD()各参数的解释

    看pytorch中文文档摘抄的笔记. class torch.optim.SGD(params, lr=, momentum=0, dampening=0, weight_decay=0, neste ...

  8. C++ 中assert断言函数的基本用法

    在我们的实际开发过程之中,常常会出现一些隐藏得很深的BUG,或者是一些概率性发生的BUG,通常这些BUG在我们调试的过程中不会出现很明显的问题,但是如果我们将其发布,在用户的各种运行环境下,这些程序可 ...

  9. click的简单使用

    click的简单使用 先通过一个简单的例子来认知一下click把 import click @click.command() @click.option('-p', '--port', default ...

  10. Python+Selenium+Unittest实现PO模式web自动化框架(8)

    1.main.py模块的功能 最后就是要有一个项目入口,并且是需要加载测试用例集. # --^_^-- coding:utf-8 --^_^-- # @Remark:运行入口 "" ...