首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
51nod 1804 小C的多边形(构造)
】的更多相关文章
51nod 1804 小C的多边形(构造)
首先可以算出无解的充分不必要条件,所有边的和为sum=3*((n-1)*n)/2,如果sum%n!=0显然无解. 也就是说n为奇数必然无解.现在考虑n为偶数的情况. 不妨假设n为偶数有解,现在考虑如何将这个解构造出来. 设此时n边形的为2*k+1,那么也就说,内边的每相邻两个边的和要为{k+2....3*k+2} 把边构造成这个样子即可. k+1 1 k+2 2 k+3......2*k+1. 另外这个oj的读入效率真是感人肺腑啊... # include <cstdio> # include…
1804 小C的多边形
1804 小C的多边形 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 小C偶然发现了一个奇妙的n个点的多边形.现在你需要给外圈的边标记上1~n-1,里圈的边也标记上1~n-1,使得对于一个外圈相邻点与中间点构成的三角形的边权之和都相等. 图中带三角形的三个点构成的三角形的边权都要相等. 你需要输出一种标记方案.(如果不存在就输出0) Input 一共一行. 第一行,有一个n(4<=n<=1,000,000). Output 第一行n-1个数表示顺时针方向外…
51nod 1471 小S的兴趣 | 分块 链表
51nod 1471 小S的兴趣 题面 小S喜欢有趣的事.但是,每个人的兴趣都是独特的.小S热衷于自问自答.有一天,小S想出了一个问题. 有一个包含n个正整数的数组a和针对这个数组的几个问题.这些问题有两种类型: 在数组下标l到r的部分上,将一个单元格循环移动到右端.即以下面方式重新分配数组上的元素. a[l], a[l+1], ..., a[r-1], a[r] → a[r], a[l], a[l+1], ..., a[r-1]. 在数组下标l到r的部分上,计算有多少元素的值与k相等. 小S很…
51nod 1631 小鲨鱼在51nod小学
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学.并依靠算法方面的特长,在班里担任了许多职务. 每一个职务都有一个起始时间A和结束时间B,意为小鲨鱼在[A, B]时间内,担任了某职务(inclusively). 现在给定小鲨鱼的职务履历表,你可以高效的给出小鲨鱼在某天担任了哪些职务吗? p.s. 由于小鲨鱼担任的职务太多,所有任期小于一个自然月的职务都忽略不计.(如1月1日~2月1日为…
51nod 1471 小S的兴趣 sqrt
小S喜欢有趣的事.但是,每个人的兴趣都是独特的.小S热衷于自问自答.有一天,小S想出了一个问题. 有一个包含n个正整数的数组a和针对这个数组的几个问题.这些问题有两种类型: 1. 在数组下标l到r的部分上,将一个单元格循环移动到右端.即以下面方式重新分配数组上的元素. a[l], a[l+1], ..., a[r-1], a[r] → a[r], a[l], a[l+1], ..., a[r-1]. 2. 在数组下标l到r的部分上,计算有多少元素的值与k相等. 小S很喜欢这个…
51nod 1831 小C的游戏
小C和小L是好朋友,她们在玩一个游戏. 一开始有一个大小为n的石子堆,小C先手. 每次可以对这个石子堆拿走一个或者把这个石子堆分成等量的几份并只取其中一份(不能不变或只剩下一个). 如果取走最后一个人的算败,请问这个游戏小C是否能胜. Input一行表示数据组数Tcases(Tcases<=1,000). 后面Tcases行每行一个n(n<=1,000,000,000).Output有Tcases行对于先手获胜输出“TAK”,先手狗带输出“NIE”.Sample Input 1 5 Sampl…
51nod 2489 小b和灯泡
小b有n个关闭的灯泡,编号为1...n. 小b会进行n轮操作,第i轮她会将编号为i的倍数的灯泡的开关状态取反,即开变成关,关变成开. 求n轮操作后,有多少灯泡是亮着的. 收起 输入 输入一个数字表示灯泡数n,其中1<n≤10000000 输出 输出一个数字表示最终亮着的灯泡数 输入样例 3 输出样例 1 水..代码: #include <iostream> #include <cstdlib> #include <cstdio> #include <cm…
51nod 2486 小b和矩阵
小b有一个m行n列的矩阵. 她会从(1,1)开始,顺时针螺旋访问该矩阵,每个元素恰好被访问一次. 请你按小b的访问顺序输出每个元素. 收起 输入 第一行输入两个数m和n,其中0<m,n≤500: 之后m行,每行n个数以空格隔开,表示这个矩阵. 输出 输出一行共m*n个数,表示螺旋输出的结果 输入样例 3 4 1 2 3 4 5 6 7 8 9 10 11 12 输出样例 1 2 3 4 8 12 11 10 9 5 6 7 注意判断即可.代码: #include <iostream>…
51nod 2485 小b重排字符串
小b有一个字符串S,现在她希望重排列S,使得S中相邻字符不同. 请你判断小b是否可能成功. 样例解释:将"aab"重排为"aba"即可. 收起 输入 输入一个只包含小写字母的字符串S,其长度n满足1≤n≤500 输出 如果可能,输出"Possible": 否则,输出"Impossible". 输入样例 aab 输出样例 Possible 只要同一种字母不超过总数的一半即可,保证能交叉放开.代码: #include <…
51nod 1643 小Q的家庭作业
题意: f(n) = sigma(gcd(i,n)) 1 <= i <= n g(n) = sigma(f(d)) d | n n = x1 * x2 * ... * xm 其中 x[i+1] = (a * x[i] + b) % c + 1 1 <= m <= 10^18 1 <= c <= 10^7 1 <= x[1],a,b <= c 首先,发现f,g函数都是积性函数 并且推下公式:g[n] = n * (k1 + 1 ) * (k2 + 1…