![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂题
protecteyesight
我向往天空的湛蓝和一望无际。保护视力,只为看到更远的天空。
展开
-
数学知识技巧
取模: ACM竞赛中经常会见到取模的操作,取模的规则一般如下: 对于加减乘运算,在运算之前取模和在运算之后取模的结果不变,因此可以在计算之前取模使得数据不会爆,注意中间如果是个多项式(有多步运算),那么每一次运算完都要取模,用来保证数据不会爆。 但是对于除法,不能直接对除数取模,要乘以除数的逆元,这样才能保证数据正确。求逆元的方法有好多种,根据费马小定理的快速幂写法比较直观。(一个例子)原创 2017-09-07 20:33:32 · 224 阅读 · 0 评论 -
HDU 6048 Puzzle(逆序数+等差数列)
传送门 题意: 给你一个N*M大小的矩阵,表示一个“拼图”模型,这个拼图有N*M-1个块,现在有1~N*M-1个编号,给你一个P,每次取第1个,第1+P个,第1+2*P个,第1+3*P个……依次从上到下,从左到右填入到模型中,问是否可以通过有限次的移动使得编号按照1~N*M-1的顺序排列好,输出YES和NO。 思路: 原排列的写出来之后写成一排,这个序列的逆序数为偶数即“YES”,否原创 2017-09-03 10:31:49 · 446 阅读 · 0 评论 -
HDU 6085 Rikka with Candies(bitset操作+思路转化)
传送门 题意: 题目的意思是存在两个长度分别为 n,m 的数组 A,B 。有 q 个询问,每个询问给出一个数字 k ,可以得到使得 Ai mod Bj =k 的种数。求该种数mod 2。 思路: 如果a%b==k的话, b肯定大于k,所以从最大的b开始枚举。其中bitset-bb中记录的就是大于k的bj的倍数。a%b=k 就是a-b*j=k,就是a-k=b*j。那么bb & (原创 2017-09-03 10:37:31 · 214 阅读 · 0 评论 -
HDU 6140 Hybrid Crystals(坑题+水题)
传送门 题意: 思路: 题目比较坑,题中数据保证了这些数据能够组成最小值到最大值中的任意的数,因此,直接计算出这些数的最大最小值就行了。 代码: #include using namespace std; int a[1005]; char b[1005]; int main() { int n,k; int t; scanf("%d原创 2017-09-03 10:47:14 · 222 阅读 · 0 评论 -
Gym - 101503J Numbers Painting(素数分解+思维)
题意: 输入一个数N,在1~N中,对于任意两个数A,B,如果A能被B整除,那么A,B,要染上不同的颜色,颜色用不同的数字表示,然而要保证用到的颜色的数量最小,问你怎么排列。 分析: 首先想到的是类似于素数筛那样的填数,但是发现思路不对,而且有的数会染重复,那么正确的思路是对1~N的每个数进行素数分解。那么所有的素数都标2,1被1占了,接下来分解后的一个数就可以表示出来它最大的那原创 2017-10-15 16:57:21 · 377 阅读 · 0 评论 -
HDU 6237 A Simple Stone Game(CCPC 2017 哈理工)(素数分解+贪心)(好题)
题目 题意: 给你n堆石子,每次你可以从任意一堆里取出一个石子放到其他堆里,可以把一堆石子取空。问如何经过最少的次数使各堆石子的GCD值>1,求最小次数。 数据范围n 思路: NIM出现就是迷惑人的,正解是素数分解。 把a数组的和sum求出来,对sum素数分解,然后对每一个素因子遍历,求出a数组中的所有数对当前素因子取余后的值,存到c数组里原创 2017-11-15 16:48:21 · 459 阅读 · 0 评论