[CF 487C Prefix Product Sequence]

题意

将1~n的正整数重排列,使得它的前缀积在模n下形成0~n-1的排列,构造解或说明无解。n≤1E5。


思考

小范围内搜索解,发现n=1,n=4和n为质数时有解。

不难发现,n一定会放在最后,否则会多出很多的0。

1.n≥4且n为合数:由于n能写成pq的形式,其中pq|(n-1)!,因此第n-1的位置上一定为0,故无解。

2.n为质数:按以下方式构造。令答案ai=i*(i-1)-1(若i-1=0,令其逆元为1)。则其前缀积为1,2,3,...,n-1,0。由于i*(i-1)-1=j*(j-1)-1时只可能i=j,因此a序列一定是互不相同的。

原文地址:https://www.cnblogs.com/GreenDuck/p/10851079.html

时间: 2024-08-06 12:19:37

[CF 487C Prefix Product Sequence]的相关文章

codeforces 487C Prefix Product Sequence (模逆元+构造)

转自http://blog.csdn.net/houserabbit/article/details/41513745 题解写的真棒.. 题目链接:http://codeforces.com/problemset/problem/487/C 题目大意:构造一个1~n的排列  使得n个前缀积对n取余是一个0~n-1的排列 题目分析:好题,首先我们通过简单的分析可以得到n肯定是最后一个数,因为如果n在前面,前缀积肯定不止1个是n的倍数,也就是说对n取模至少有两个0,显然不满足排列,也就是说取模得到排

CodeForces 487C Prefix Product Sequence

题意: 构造一个1~n的排列  使得n个前缀积%n是一个0~n-1的排列 思路: 首先确定n一定放最后  要不然会有%n会有多个0  这时n-1位置的前缀积为(n-1)! 接着讨论n  n为合数时只有n=4有解  因为如果n为合数一定可以拆成p*q的形式  明显pq|(n-1)! 然后构造ai=(i+1)*inv[i]  因为(i+1)*inv[i] == (j+1)*inv[j]时一定有i==j  所以这样构造满足ai是唯一的  也就是说是一个排列 而且这样构造使得前缀积 a1*a2*a3..

cf487C Prefix Product Sequence

Consider a sequence [a1,?a2,?... ,?an]. Define its prefix product sequence . Now given n, find a permutation of [1,?2,?...,?n], such that its prefix product sequence is a permutation of [0,?1,?...,?n?-?1]. Input The only input line contains an intege

[矩阵乘法] CF 1182 E.Product Oriented Recurrence

Fn = c2n-6 * Fn-1 * Fn-2 * Fn-3,求 Fn . 推一下式子,变成 Fn * cn = ( Fn-1 * cn-1 ) * ( Fn-2 * cn-2 ) * ( Fn-3 * cn-3 ) 记 Tn = Fn * cn,就有 Tn = Tn-1 * Tn-2 * Tn-3 . 再推一下,Tn = Tn-22 * Tn-32 * Tn-4, 发现数列的指数是可以 ( a , b , c )   ----- >   ( b+a , c+a , a ) 递推的, 这个显然

【codeforces #278(div 1)】ABCD题解

A. Fight the Monster time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output A monster is attacking the Cyberland! Master Yang, a braver, is going to beat the monster. Yang and the monster each hav

揭开智能配置上网(微信Airkiss)的神秘面纱

本文介绍微信利用Airkiss技术对wifi设备进行智能配置上网的场景,并分析其实现的原理.这里再次说明,Airkiss只是用于配置上网,其跟微信硬件平台的通信流程和接入协议规范完全没有关系.一个wifi设备并不一定要通过Airkiss技术来配置上网,它也可以利用传统的方法来配置,也可以利用其它厂商的智能配置技术来完成配置.所有的wifi智能配置上网技术的原理基本上都是一致的,其开山鼻祖应该是TIsmartConfig. 目前几乎所有的主流wifi厂商都提供了Airkiss的接口库,但并没有说明

一个java工程师的前6年工作部分技术积累(一)

一.  JavaScript 1.判断输入0-1之间的小数 function checkPower(power) { var str = power.value; var reg = /(^[1]$)|(^[1]\.[0]{1,2}$)|(^[0]\.[1-9][0-9]{0,1}$)|(^[0]\.[0-9][1-9]$)/; if(!reg.test(str)) { alert('权重必须为大于0小于或等于1的小数!'); power.focus(); return false; } ret

ASP.NET MVC 3中的路由

准备发布新随笔,才发现草稿里还有几年前这篇烂了尾的,先放上来,有空再补完整吧-- (* 整理自<Pro ASP.NET MVC 3 Framework>学习笔记. *) 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请求URL最终被传递给特定Controller的特定Action进行处理.而在相反的方向上,MVC框架的渲染器同样要利用这张路由表,生成

[学习笔记] 理解ASP.NET MVC的路由系统

引言 路由,正如其名,是决定消息经由何处被传递到何处的过程.也正如网络设备路由器Router一样,ASP.NET MVC框架处理请求URL的方式,同样依赖于一张预定义的路由表.以该路由表为转发依据,请求URL最终被传递给特定Controller的特定Action进行处理.而在相反的方向上,MVC框架的渲染器同样要利用这张路由表,生成最终的HTML页面并返回URL.所以,理解整个ASP.NET MVC的路由系统,有两个必须出现的关键元素:Controller与Action,有两个方向的操作:传入的