2018年2月1日训练笔记

    今天是水题的一天,因为刚开3个专题,当然先做水题啊。。。还想多抢几个1A,可是自己太菜,没大抢到,下午被专题2的高斯消元耽误了许久,代码怎么敲都不对,最后发现是细节错误,高斯消元的代码是真的长,看的眼花。贴一些题目的简单思路:

     

专题一

 


T:Primitive Roots

给出p求其原根个数,原根:奇素数p必有原根它的原根个数为φ(φ(p))

 

H -Prime Gap

 题意是给定一个数k,让找出大于k的第一个素数与小于k的第一个素数,结果为两者之间的差值,对于k本身就是素数输出0;可以二分找离k最近的素数。

 

W -Farey Sequence

整数n的Farey序列Fn是指满足0 <a <b <= n且gcd(a,b)= 1按照递增顺序排列的不可约分的有理数a / b的集合。

那么对于F(n)它比F(n-1)新增加的元素就是以n为底,且分子与n互质的分数的集合,新增加的个数就是phi(n)个。

 

M -Perfect Pth Powers

题意:类似于完全平方数(即完全2次方数),求一个数最多是完全多少次方数,即让求使x=b^p的最大的p;

首先把x分解质因数,x = a1^b1* a2^b2 … ak^bk,则最终结果p为b1,b2,…bk的最大公约数。

如果x是负数,因为一个数的偶数次方不可能为负数,所以要将答案一直除2,直到其为奇数。

本来想先枚举次数i求一个int ans=pow(1.0*n,1.0/i)然后判断n与pow(1.0*ans,1.0*i))是否相等但是wrong answer,是机器精度运算问题???

 

 

V -Happy 2006

题目大意就是给出n和k求出第k个与n互素的数

由欧几里德算法知道gcd(b×t+a,b)=gcd(a,b)  (t为任意整数)

即:如果a与b互素,则b×t+a与b也一定互素,如果a与b不互素,则b×t+a与b也一定不互素

故与m互素的数对m取模具有周期性,则根据这个方法我们就可以很快的求出第k个与m互素的数

假设小于m的数且与m互素的数有k个,其中第i个是ai,则第m×k+i与m互素的数是k×m+ai

综上:与n互素的数以n为周期,[1,n]内与n互素的数构成一个周期可以先求出来,假设这些数分别为p1,p2…pk,那么[n+1,2n]内与n互素的数就是n+p1,n+p2..n+pk.

 

 

G -Sum of Consecutive Prime Numbers

题意是:一个数可以等于一串连续素数的和,也就是一种方案,给出p(2<=p<=10000)问p可以由多少不同方案组成,题目其实考察筛素数,筛出素数后,预处理1000以内的连续素数组合情况。

 

N -Goldbach's Conjecture

 题意是:由哥德巴赫猜想每个大于4的偶数都可以写成两个奇素数的和。给出n(6<=n<=1000000)求n可以由哪两个奇质数组成,如果有多种组成情况输出两个奇质数差最大的一种组.可以筛出1000000之内的所有奇质数,然后枚举即可,枚举到的第一种情况就是答案(直接break),题目当然不用判断不存在结果的情况,因为哥德巴赫猜想现在为止还没发现反例。

 

O -Goldbach's Conjecture

 题意与N题相似,不过这里是求,对于一个n=p1+p2,求p1和p2的对数,注意(p1,p2)与(p2,p1)算一对,解法也是对于n枚举即质数,统计方案数。

专题二

 

H -EXTENDED LIGHTS OUT

经典开关灯问题,给出灯的初始矩阵,求操作哪个灯,使得最终灯全为灭,操作一个灯时其周围灯全灭,输出操作矩阵,今天这一题错了多次,细节问题。

 

I -Painter's Problem

给出一个n*n的矩阵,由白块或黄块组成,白块反转的黄块,黄块翻转的白块,操作一块周围受影响,问操作哪些块能使得最终全为黄块,求最少操作几块。经典异方程组,由于可能存在自由元所以与上题不同,此题需要枚举自由元来找最少操作数,也就是方程组有多个解,找最合适的。

 

M -Flip Game

给出一个4*4的矩阵,由白块或黑块组成,白块反转的黑块,黑块翻转的白块,操作一块周围受影响,问操作哪些块能使得最终全为白块或全为黑块,求最少操作数几块。

那么这个问题,与I题不同的区别在于,最终状态可以有两种结果,那么可以对两种结果做两次高斯消元,在两次结果中取最小的。这个题的小变形还是不错的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值