P3599-Koishi Loves Construction【构造,数论】

正题

题目链接:https://www.luogu.com.cn/problem/P3599


题目大意

构造一个nnn的排列,要求满足其中一个给定的要求

  1. 对于每个前缀和在模nnn意义下不同
  2. 对于每个前缀积在模nnn意义下不同

解题思路

对于加法,显然nnn要填在第一位,那么这一位的前缀和就是000了。并且如果nnn是奇数那么有(∑i=1ni)%n=0(\sum_{i=1}^ni)\%n=0(i=1ni)%n=0所以nnn不能是奇数。对于nnn是偶数的情况,我们可以将一个数iii在模nnn意义下视为−(n−i)-(n-i)(ni)。所以我们可以构造一个波动序列也就是n,1,−2,3,−4,5,−6...n,1,-2,3,-4,5,-6...n,1,2,3,4,5,6...
对于乘法,nnn要填在最后,111要填在第一位,然后如果nnn是一个合数,那么有(∏i=1ni)%n=0(\prod_{i=1}^ni)\%n=0(i=1ni)%n=0也就是有两个000,所以无解。那么nnn是一个质数的情况,我们知道在模nnn意义下对于每个数都有一个不同的逆元,考虑构建一个ai=1i−1∗ia_i=\frac{1}{i-1}*iai=i11i的序列,这样si=is_i=isi=i

如何证明aia_iai在模nnn意义下各不相同,设ai=aj=ka_i=a_j=kai=aj=k那么有(i−1)k%n=i,(j−1)k%n=j(i-1)k\%n=i,(j-1)k\%n=j(i1)k%n=i,(j1)k%n=j
⇒(i−j)k%n=(i−j)\Rightarrow (i-j)k\%n=(i-j)(ij)k%n=(ij)
要求k≠1k\neq 1k=1所以不成立。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
ll idx,n,T;
ll power(ll x,ll b){ll ans=1;while(b){if(b&1)ans=ans*x%n;x=x*x%n;b>>=1;}return ans;
}
int main()
{scanf("%lld%lld",&idx,&T);while(T--){scanf("%lld",&n);if(idx==1){if(n==1)printf("2 1");else if(n&1)printf("0");else {printf("2 ");ll k=0;for(ll i=1;i<=n;i++){if(i&1)printf("%lld ",n-k);else printf("%lld ",k);k++;}}}else{bool flag=0;if(n==1)printf("2 1");else if(n==4)printf("2 1 3 2 4");else{for(ll i=2;i*i<=n;i++)if(n%i==0){flag=1;break;}if(flag){printf("0\n");continue;}printf("2 1 ");ll last=1;for(ll i=2;i<n;i++){ll k=power(last,n-2)*i%n;last=last*k%n;printf("%lld ",k);}printf("%lld",n);}}putchar('\n');}
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【图论】【并查集】矩形(ssl 1222)

矩形 ssl 1222 题目大意&#xff1a; 有n个矩阵&#xff0c;现在将有重叠部分的两个矩阵合并成一个图形&#xff0c;问有多少个图形 原题&#xff1a; 题目描述 在一个平面上有n个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。…

Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

图片或者文件上传相信大家在开发中应该都会用到吧&#xff0c;有的时候还要对图片生成缩略图。那么如何在Asp.Net Core Web Api实现图片上传存储以及生成缩略图呢&#xff1f;今天我就使用MongoDB作为图片存储&#xff0c;然后使用SixLabors作为图片处理&#xff0c;通过一个As…

FFT算法学习笔记

写在前边 1.辣鸡RRRR_wys之前csdn的博客&#xff0c;千年不更。。。还很水。。。于是开了这个Blog。。。妄图拯救一下自己 2.最近接触了一些多项式理论。于是翘掉了愉快的高频自控&#xff0c;通过《算导》稍稍学习了一下 3.算法竞赛中&#xff0c;FFT主要解决多项式的乘法等问…

YbtOJ#20060-[NOIP2020模拟赛B组Day3]字串修改【模拟】

正题 题目链接:http://noip.ybtoj.com.cn/contest/86/problem/2 题目大意 给两个字符串&#xff0c;第一个中的∗*∗号可以替换为若干个&#xff08;可以为0个&#xff09;相同的它的前一个字符。求能否构成第二个字符串。 解题思路 把所有的∗*∗号去掉然后在有的∗*∗号的…

【并查集】家谱(luogu 2814/ssl 2343)

家谱 luogu 2814 ssl 2343 题目大意&#xff1a; 给一堆父子关系&#xff0c;求出一些人的最大的祖先 原题&#xff1a; 题目背景 现代的人对于本家族血统越来越感兴趣。 题目描述 给出充足的父子关系&#xff0c;请你编写程序找到某个人的最早的祖先。 输入输出格式…

System.IO.Pipelines: .NET高性能IO

本文翻译自dotnet团队博客文章&#xff1a;https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net/ System.IO.Pipelines是一个新的库&#xff0c;旨在简化在.NET中执行高性能IO的过程。它是一个依赖.NET Standard的库&#xff…

Full_of_Boys训练1总结

题目来源&#xff1a; 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) A. Archery Tournament 每次查询&#xff0c;找这个位置前面的15个圆&#xff0c;后边15个圆来更新答案。set维护一下圆就行。为什么对&#xff0c;官方题解&a…

CF311B-Cats Transport【斜率优化dp】

正题 题目链接:https://www.luogu.com.cn/problem/CF311B 题目大意 nnn座山在一条线上&#xff0c;有mmm只猫&#xff0c;第iii只从tit_iti​开始在第xix_ixi​座山上游玩结束。 派ppp个人在不同时间从111走到nnn接走所有游玩结束的猫&#xff0c;求所有猫的最小等待时间。 解…

【并查集】黑魔法师之门(codevs 1995/joyoi-codevs 1995)

黑魔法师之门 codevs 1995 joyoi-codevs 1995 题目大意&#xff1a; 有一堆点&#xff0c;每一次操作添加一条边&#xff0c;并要输出每个点的度数都大于1并为偶数的子图的个数 原题&#xff1a; 题目描述 经过了16个工作日的紧张忙碌&#xff0c;未来的人类终于收集到了…

.NET+PostgreSQL实践与避坑指南

简介.NETPostgreSQL(简称PG)这个组合我已经用了蛮长的一段时间&#xff0c;感觉还是挺不错的。不过大多数人说起.NET平台&#xff0c;还是会想起跟它“原汁原味”配套的Microsoft SQL Server(简称MSSQL)&#xff0c;其实没有MSSQL也没有任何问题&#xff0c;甚至没有Windows Se…

Full_of_Boys训练2总结

题目来源:&#xff1a;西安电子科技大学第16届程序设计竞赛网络同步赛 A, B, C: easy problem D. 另一个另一个简单题 做法是加起来&#xff0c;除n。希望会推导的聚聚指点。 #include <bits/stdc.h> const int inf 0x3f3f3f3f; using namespace std; int T; int ans; in…

P2714-四元组统计【数论,容斥】

正题 题目链接:https://www.luogu.com.cn/problem/P2714 题目大意 给出nnn个数&#xff0c;求有多少个(i,j,k,l)(i,j,k,l)(i,j,k,l)使得gcd(ai,aj,ak,al)1gcd(a_i,a_j,a_k,a_l)1gcd(ai​,aj​,ak​,al​)1。 解题思路 我们设fif_ifi​表示gcdgcdgcd和为iii的方案数。FiF_iFi…

【并查集】Supermarket(poj 1456/luogu-UVA1316)

Supermarket poj 1456 luogu-UVA1316 题目大意&#xff1a; 有一堆物品&#xff0c;每一件物品都有自己的价值和保质期&#xff0c;每天只能卖出一件物品&#xff0c;问最大价值是多少 原题&#xff1a; 题目描述 有一个商店有许多批货&#xff0c;每一批货又有N(0<N…

Jimu : .Net Core 分布式微服务框架介绍

一、前言近些年一直浸淫在 .Net 平台做企业应用开发&#xff0c;用过的 .Net 框架不多&#xff08;具体数量不清&#xff0c;印象深刻的有 Asp.Net MVC&#xff0c;WPF&#xff0c;其他很多都是基于微软开发的框架做些封装而形成新的框架&#xff0c;大都是还没起好名就湮灭在历…

组合数学学习笔记

常见组合计数 n球m盒分配问题 球有别&#xff0c;盒子有别&#xff0c;盒子可空&#xff1a;m^n 每个同学都有m种选择 球无别&#xff0c;盒子有别&#xff0c;盒子不可空&#xff1a;C(n-1,m-1) 隔板法 球无别&#xff0c;盒子有别&#xff0c;盒子可空&#xff1a;C(nm-1,m-1…

P3287-[SCOI2014]方伯伯的玉米田【二维树状数组,dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3287 题目大意 nnn个玉米高度不同&#xff0c;可以选择kkk个区间拔高111个高度&#xff0c;求最长不降子序列长度。 解题思路 显然每次拔高都是拔一个后缀&#xff0c;所以我们设fi,jf_{i,j}fi,j​表示到第iii个玉米&#x…

【背包】买装备

买装备 题目大意&#xff1a; 有n件物品&#xff0c;每件物品有它的物抗&#xff0c;魔抗&#xff0c;价格&#xff0c;现在要在物抗魔抗各不小于一个值的前提下&#xff0c;使价格最小&#xff08;每件物品只能买一件&#xff09; 原题&#xff1a; 题目描述 mxy 沉迷于一…

.NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码

前言上一篇博客中我们可以得知通过Swagger插件可以很方便的提供给接口开发者在线调试&#xff0c;但是实际上Swagger附带的功能还有很多&#xff0c;比如使用NSwag生成客户端调用代码&#xff0c;进一步解放接口开发者。NSwag NSwag是一个发布在GitHub上的开源项目&#xff0c;…

BZOJ1485: [HNOI2009]有趣的数列

题解&#xff1a;考虑按顺序从小到大&#xff0c;加入数字&#xff0c;将加入奇数位置看作入栈&#xff0c;加入偶数位置看作出栈。为什么可以&#xff1f;考虑我们要保证相邻奇数小于偶数&#xff0c;所以必须先填上一个奇数的位置才能填偶数的位置&#xff0c;既时刻保证奇数…

jzoj4223-旅游【并查集】

正题 题目大意 nnn个点mmm条边&#xff0c;qqq次询问走边权小于xxx的能联通的点对数。 解题思路 将边权排序&#xff0c;然后并查集预处理答案即可。 时间复杂度O(mlog⁡m)O(m\log m)O(mlogm) codecodecode #include<cstdio> #include<cstring> #include<alg…