数论
Originum
勤能补拙。邮箱:originum@126.com
展开
-
扩展欧几里德算法解二元一次不定方程
扩展欧几里德算法:已知两个不完全为 0 的非负整数 a,b,必然存在整数对 x,y ,使它们满足贝祖等式:解一定存在,根据数论中的相关定理。下面给出代码:int extgcd(int a, int b, int& x, int& y) { int gcd = a; if (b != 0) { gcd = extgcd(b, a % ...原创 2018-08-06 22:09:47 · 2061 阅读 · 0 评论 -
POJ 2528 Mayor's posters [ 离散化 + 线段树 ]
题目链接:Mayor's posters POJ 2528题意概括:依次贴上 n 张海报,每张海报会覆盖一个区间。后贴上的海报会覆盖前贴的海报,问最后可以看见几张海报这里的区间不是拿两端点来维护的,是直接按单位最小区间来编号。如 [3, 5] 区间是由编号为 3、4、5的区间组成的数据范围:题解分析:其实就是一个区间涂色问题,能看见几张海报问的就是有几种颜色...原创 2018-10-06 16:52:46 · 335 阅读 · 0 评论 -
离散化实现|bug分析及解决
离散化:对于一些应用实例,有时只会用到数据的相对大小,而不在意数据本身的大小例:在区间涂色问题中,依次给区间涂色,后涂色的区间会覆盖前区间。现在求剩下几种颜色可以发现,这个问题中,有用的就只是区间的相对位置关系,而不在于区间本身的大小。如:[1, 3] 涂白色,[6, 7] 涂黑色[1, 3] 涂白色,[10000006, 10000007] 涂黑色最后都只有两种颜色。但是...原创 2018-10-06 20:37:32 · 319 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare [ DP + 快速幂 + 环上组合 ]
题目链接:ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare题意概括:N 个人围成一个环,每个人可以选 之间的一个整数(某个数字可以被重复选),要求是相邻两人的数同或后是正数结果模 1e9 + 7数据范围:题解分析:同或的概念就是对于两个二进制位,相同为 1,不同为 0由于是无符号数,故两数同或后不会出现负数。所以只要满足得...原创 2018-09-11 10:28:30 · 336 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies [ 费马小定理 + 快速幂 + 大数 ]
题目链接:ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies题意概括:有 n 个同学,学号是 1 至 n 。有 n 颗糖,随机分给这些同学(有的同学可能分不到糖),问有多少种分法数据范围:题解分析:先求出公式:从 n 个同学中取 k 人,表示可以分到糖的同学,方法数是 接下来要把 n 块糖分给这 k 个人,并且要保证每人至少有 1 ...原创 2018-09-17 00:19:43 · 361 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 J. Sum [ 筛法 + 数论 + 二分 ]
题目链接:ACM-ICPC 2018 南京赛区网络预赛 J. Sum题意概括:没有平方数因子的整数叫 square-free integer。把 i 分解为两个square-free integer,乘积为 i , 这两个数可以相同定义 F(i) 表示 i 不同分解方式的数目,求 数据范围:题解分析:这里换一个思路,不求某个数可以有几种分解方式,而是拿 sq...原创 2018-09-01 23:48:09 · 449 阅读 · 0 评论 -
矩阵快速幂
矩阵的定义:矩阵就用二维数组存储,在结构体中也保存了矩阵的行数、列数 (m、n)。在矩阵之间的计算中需要行数和列数的信息,与其在用到时指定,不如和矩阵二维数组一同放在结构体内,初始化时赋值。把初始化的构造函数放在结构体内,就不用在外部使用前每次手动初始化,很方便。由于经常要用到矩阵相乘,就直接重载了 * ,不用每次调用函数。#include <memory.h>...原创 2018-08-27 23:11:11 · 242 阅读 · 0 评论 -
HDU 6395 Sequence [ 矩阵快速幂 + 分块 ]
题目链接:2018 Multi-University Training Contest 7 Sequence HDU - 6395 题意概括:就是给出一个递推公式,求第 n 项的数。数据范围:题解分析:数据量很大,并且当前项是由前面几项推出的,很自然地可以想到可以用矩阵快速幂计算但这里不是很裸的矩阵快速幂,多了一个不定的常量 因为该值在一定范围内...原创 2018-08-27 20:37:10 · 276 阅读 · 0 评论 -
HDU 6397 Character Encoding [ 容斥原理 + 组合数 ]
题目链接:2018 Multi-University Training Contest 8 Character Encoding HDU - 6397题意概括:m 个位置任意填入范围是 0 至 n-1 的整数,使各位数字的和为 k ——问总共有多少种情况。数据范围: 题解分析:这里有一个关于经典组合数的知识点,dls也多次强调,很重要。 的解总数是 ...原创 2018-08-23 23:54:35 · 348 阅读 · 0 评论 -
BAPC 2014 Preliminary A Choosing Ice Cream [ 数论 ]
题目链接:BAPC 2014 Preliminary A Choosing Ice Cream题意概括:现在有n个冰激凌,需要从中选一个。给一个k面的骰子,问最少需要投几下可以得到一个方案,通过分配基本事件,使n个冰激凌的概率相同。若无法达到概率相同,则输出"unbounded"。数据范围:1 ≤ n, k ≤ , 测试数据最多100组。题解分析:投掷1次得到k个基本...原创 2018-07-30 13:41:24 · 294 阅读 · 0 评论 -
快速幂+大数乘法取模
快速幂: 中自带的 函数在调用时需要一系列类型转换;数值并不是严格精确,存在误差;执行效率低。最好不要用。然而自己用累乘法写的朴素函数执行效率低下,时间复杂度 。 算法 () , 是一种高效的快速幂算法,时间复杂度 。原理:求 时,朴素方法需要累乘 n 次。假如 n 是 2 的指数型,可以表示为 ,所以可以转化成: 就压缩到了 k 次平方运算。可以把这个方...原创 2018-07-31 12:02:24 · 1524 阅读 · 0 评论 -
K Upside down primes German Collegiate Programming Contest 2015 [ Miller_Rabin ]
题目链接:K. Upside down primes题意概括:判断输入是否为素数,并且翻转180度后也为素数,翻转规则如下:翻转后6与9要互换 3、4、7 翻转后无意义,当错误处理(无法组成数,自然就不是素数) 其他数翻转后不改变题解分析:数据的读入和翻转不是问题,我的处理是直接用数组模拟,其实用 string 做会更好。有一点需要注意的是数据范围是1e16,所以都要用l...原创 2018-07-31 16:15:36 · 271 阅读 · 0 评论 -
Interesting Integers BAPC 2014 Final [ 扩展欧几里德算法 ]
题目链接:I. Interesting Integers题意概括:Gabonacci数列类似于斐波那契数列,都满足某位的值是前两位的和不同点在于该数列前两位 是由我们自定义的。现在指定一个 , 求最小的 组合,使 是该数列中的某一位。最小的定义是 尽可能小,同时 ,不存在 相同, 不同的情况。数据范围: , 测试数据不超过100组题解思路:当...原创 2018-08-03 23:56:50 · 265 阅读 · 0 评论 -
算法小题
今后告别ACM类竞赛了,编程的算法“内功”修炼告一段落投入计算机视觉门派了,伴着ML、DL走一遭之前一些存在草稿箱的OJ题,合在一起总结一下,或许今后还用得到HDU 1023 Train Problem II [ 高精度乘除单精度 + Catalan ]#include<iostream>#include<cstring>#include<alg...原创 2019-02-06 00:41:31 · 245 阅读 · 0 评论