【题解】P3599 Koishi Loves Construction

时间:2021-09-20 00:28:47

【题解】P3599 Koishi Loves Construction

\(\mod n\) 考虑如何构造,发现\(n\)一定在第一位,不然不行。\(n\)一定是偶数或者是\(1\),不然 \(n|\frac{n(n+1)}{2}\)则最后一项一定会和第一项相同。考虑让他们的前缀和变成这样子的数列\(\left[1,2,3,etc... \right]\) ,那么我们构造\(\left[n,1,n-2,3,n-4\right]\)就好了。

考虑构造第二问,\(\left[a_1,a_2,a_3,a_4,ect...\right]\)的前缀积相同,我们知道乘法逆元$a^{-1} \times a \equiv 1 \mod n \(,那么我们只要把每个数都乘上前那个数的乘法逆元,这样每个位置的前缀积都等于本身\)a_i \mod n$了。

#include<bits/stdc++.h>

#define RP(t,a,b) for(register ll (t)=(a),edd_=(b);t<=edd_;++t)
#define DRP(t,a,b) for(register int (t)=(a),edd_=(b);t>=edd_;--t)
#define ERP(t,a) for(int t=head[a];t;t=e[t].nx)
#define Max(a,b) ((a)<(b)?(b):(a))
#define Min(a,b) ((a)<(b)?(a):(b))
#define pushup(x) seg[(x)]=seg[(x)<<1]+seg[(x)<<1|1]
#define midd register int mid=(l+r)>>1
#define chek if(R<l||r<L)return
#define TMP template<class ccf>
#define rgt L,R,mid,r,pos<<1|1
#define lef L,R,l,mid,pos<<1
#define all 1,n,1 using namespace std;typedef long long ll;
TMP inline ccf qr(ccf k){
char c=getchar();
ccf x=0;
int q=1;
while(c<48||c>57)q=c==45?-1:q,c=getchar();
while(c>=48&&c<=57)x=x*10+c-48,c=getchar();
return q==-1?-x:x;
}
int X,T;ll yyb;
inline bool isp(int YYB){
for(int psj=2;psj*psj<=YYB;psj++)
if(!(YYB%psj))
return 0;
return 1;
} const int maxn=1e5+15;
ll data[maxn];
int main(){
#ifndef ONLINE_JUDGE
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
X=qr(1);
T=qr(1);
if(X==1){
while(T--){
yyb=qr(1);
int psj=2;
if(yyb%psj&&yyb!=1){
puts("0 ");
continue;
}else cout<<2<<' ';
cout<<yyb<<' ';
RP(t,1,yyb-1)
cout<<((t&1)?yyb-t:t)<<' ';
puts("");
}
}
else{
while(T--){
yyb=qr(1);
if(yyb!=1&&yyb!=4&&!isp(yyb)){
puts("0 ");
continue;
}
else
cout<<2<<' ';
if(yyb==1){
puts("1 ");
continue;
}
if(yyb==4){
puts("1 3 2 4 ");
continue;
} data[1]=1;
ll p=yyb;
RP(t,2,yyb)
(data[t]=(ll)(p-p/t)*data[p%t]%p);
cout<<1<<' ';
RP(t,2,yyb-1)
cout<<t*data[t-1]%yyb<<' ';
cout<<yyb<<' '; puts("");
memset(data,0,sizeof data);
}
}
return 0;
}

【题解】P3599 Koishi Loves Construction的更多相关文章

  1. P3599 Koishi Loves Construction——构造题

    题目 Task1:试判断能否构造并构造一个长度 $n$ 的 $1...n$ 的排列,满足其 $n$ 个前缀和在模 $n$ 的意义下互不相同 Task2:试判断能否构造并构造一个长度 $n$ 的 $1. ...

  2. C 洛谷 P3599 Koishi Loves Construction &lbrack;构造 打表观察&rsqb;

    题目描述 Koishi决定走出幻想乡成为数学大师! Flandre听说她数学学的很好,就给Koishi出了这样一道构造题: Task1:试判断能否构造并构造一个长度为的的排列,满足其个前缀和在模的意义 ...

  3. 洛谷P3599 Koishi Loves Construction 构造

    正解:构造 解题报告: 传送门! 这题俩问嘛,就分成两个问题港QwQ 就按顺序趴,先港第一问QwQ 首先要发现,n在膜n意义下就是0嘛 那作为前缀和的话显然它就只能放在第一个 然后再想下,发现,如果n ...

  4. 题解-Koishi Loves Construction

    题解-Koishi Loves Construction 前缀知识 质数 逆元 暴搜 Koishi Loves Construction 给定 \(X\),\(T\) 组测试数据,每次给一个 \(n\ ...

  5. 【Luogu3602】Koishi Loves Segments(贪心)

    [Luogu3602]Koishi Loves Segments(贪心) 题面 洛谷 题解 离散区间之后把所有的线段挂在左端点上,从左往右扫一遍. 对于当前点的限制如果不满足显然会删掉右端点最靠右的那 ...

  6. 【题解】DZY Loves Chinese

    [题解]DZY Loves Chinese II 不吐槽这题面了... 考虑如何维护图的连通性,如果把图的变成一颗的\(dfs\)生成树,那么如果把一个节点的父边和他接下来所有的返祖边删除,那么我们就 ...

  7. 题解-ARC058D Iroha Loves Strings

    题面 ARC058D Iroha Loves Strings 给定 \(n\) 个字符串,从中选出若干个按给出顺序连接起来,总长等于 \(m\),求字典序最小的,保证有解. 数据范围:\(1\le n ...

  8. E 洛谷 P3598 Koishi Loves Number Theory&lbrack;数论&rsqb;

    题目描述 Koishi十分喜欢数论. 她的朋友Flandre为了检测她和数论是不是真爱,给了她一个问题. 已知 给定和个数,求对取模. 按照套路,呆萌的Koishi当然假装不会做了,于是她来向你请教这 ...

  9. D 洛谷 P3602 Koishi Loves Segments &lbrack;贪心 树状数组&plus;堆&rsqb;

    题目描述 Koishi喜欢线段. 她的条线段都能表示成数轴上的某个闭区间.Koishi喜欢在把所有线段都放在数轴上,然后数出某些点被多少线段覆盖了. Flandre看她和线段玩得很起开心,就抛给她一个 ...

随机推荐

  1. &lbrack;杂&rsqb; 一些常用的SQL归类之一

    整理了一大坨的常用SQL语句,以方便自己需要用的时候查找. 查看锁 SELECT [request_session_id] , c.[program_name] , DB_NAME(c.[dbid]) ...

  2. c&plus;&plus;将引用作为函数的参数---6

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 引用经常被用作函数参数,使得函数中的变量名成为调用程序中的变量别名.这种传递参数 的方法称为按引用传递. ...

  3. CSS垂直水平完全居中手册

    水平居中 内联元素(inline or inline-*)居中? 你可以让他相对父级块级元素居中对齐 .center-children { text-align: center; } 块级元素(blo ...

  4. oracle数据库的一次异常起停处理。

    在重启数据库的时候,忘记把一个应用关停了,想起来的时候,就ctrl+c,把数据库shutdown immediate 给强制停下了,把该应用再停止,然后shutdown immdiate,这时候数据报 ...

  5. 转&colon;Windows下用sftp自动下载文件

    远程服务器是Linux操作系统,没有ftp服务,可以ssh,数据库每天2:00会自动创建一个备份文件,本地计算机是windows操作系统,希望用sftp每天3:00下载远程服务器上的备份文件.本地系统 ...

  6. iOS Password AutoFill开发指南

    转载请标明来源:https://www.cnblogs.com/zhanggui/p/9431950.html 引言 在<iPhone User Guide for iOS 11.4>这本 ...

  7. L2-010 排座位 (并查集)

    这里唯一需要注意的是,各个输出的条件在题目中有点描述模糊. 是朋友关系,(不管是不是间接朋友关系) 既不是朋友也不是敌人(这里不用管是不是间接朋友) 是敌人关系,同时是间接朋友关系 是单纯的敌人关系, ...

  8. python常用的内置模块

    1.import time time模块与时间相关的功能 在python中时间分为3种 1.时间戳timestamp从1970 1月 1日到现在的秒数 主要用于计算两个时间的差 2.localtime ...

  9. app的创建和注册

    APP是用来存放代码的 创建APP 命令行创建,切换到项目目录下 python manage.py startapp appo1 #app01为项目名,创建完刷新即可 目录结构 把函数放到views后 ...

  10. python 使用gevent模块实现手动挡切换多协程。

    from greenlet import greenlet def test1(): print(12) g2.switch()#切换到协程g2执行,保存执行状态 print(23) g2.switc ...