随笔分类 - NOIP 模拟与数学
摘要:###Problem 1 世界上最可爱的珂朵莉### 时间限制:C/C++ 1秒,空间限制:C/C++ 65536K 题目描述 我永远喜欢珂朵莉~! 有两个长为n的序列a[i]与b[i] 你可以把任意不多于x个a序列中的数变成y 你可以把所有序列b中的数减去一个非负数t 你可以把a序列和b序列分别任
阅读全文
posted @ 2019-03-01 11:49
_tham
摘要:【题意】 给定长宽的黑白棋棋盘摆满棋子,每次操作可以反转一个位置和其上下左右共五个位置的棋子的颜色,求要使用最少翻转次数将所有棋子反转为黑色所需翻转的是哪些棋子。 【题目分析】 这题刚开始被放到搜索的分类下了..然而这和搜索有什么关系..没经验所以想了各种和搜索沾边的方法,结果没想出解法,直到看了网
阅读全文
摘要:http://blog.csdn.net/fuyukai/article/category/2898321/1 图论、次小生成树,差分约束,双连通 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。...
阅读全文
摘要:【题目链接】:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 骨牌,一种古老的玩具。今天我们要研究的是骨牌的覆盖问题: 我们有一个2xN的长条形棋盘,然后用1x2的骨牌去覆盖整个棋盘。对于这个棋盘,一共有多少种不同的覆...
阅读全文
摘要:感悟:预处理next[ ]数组求解B串的“自我匹配过程”,思路与KMP类似,目标得到最大相同的前缀、后缀。 ([1—>k]==[i-k+1,i]),可以根据由前往后,利用前面已知递推得到后面未知next[ ]。 KMP,利用B串自身的next[ ](最大相同前缀,后缀)数组,当发生不匹配...
阅读全文
摘要:约瑟夫环问题(基本) n个人围成圈,依次编号为1,2,..,n,现在从1号开始依次报数,当报到m时,报m的人退出,下一个人重新从1报起,循环下去,问最后剩下那个人的编号是多少? 递归法 参见百度百科:Josephus(约瑟夫)问题的数学方法 递推式: 将这...
阅读全文
摘要:P1967 - 【NOIP2010冲刺十三模拟赛】外星密码 Description 有了防护伞,并不能完全避免2012的灾难。地球防卫小队决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准...
阅读全文
摘要:给定一个十进制整数N,求出从1到N的所有整数中出现"1"的个数。 例如:N=2,1,2出现了1个"1"。 N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个"1"。 最直接的方法就是从1开始遍历到N,将其中每一个数中含有"1"的个数加起来,就得到了问题的解。 long ...
阅读全文
摘要:欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明: a可以表示成a = kb + r,则r = a mod ...
阅读全文
摘要:#define MAX 100000 #define base 10000 #define digit 4 struct bigint { int c[MAX]; int len; void init() { len = 0;...
阅读全文
摘要:莫比乌斯反演 莫比乌斯反演在数论中占有重要的地位,许多情况下能大大简化运算。那么我们先来认识莫比乌斯反演公式。 定理:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它的定义如下: (1...
阅读全文
摘要:求整数N的开方,精度在0.001 二分法 若N大于1,则从[1, N]开始,low = 1, high = N, mid = low + (high - low) >> 1开始进行数值逼近 若N小于1,则从[N, 1]开始,low = 0, high = N, mid = low + (h...
阅读全文
摘要:初学KMP的时候,一直不得要领。后来学习AC自动机的时候,一下子明白了KMP实际上是AC自动机的特殊情况。 首先贴三段代码,一组是回溯法,暴力求解,另外两个是KMP串模式匹配 /* 回溯法字符串匹配算法就是用一个循环来找出所有有效位移, 该循环对n-m+1个可能的位移中的每一个inde...
阅读全文
摘要:最大公约数的求法中最过著名的莫过于欧几里得辗展相除法,它有两种形式(递归与非递归,其实是一样的,任何递归都可以写成非递归),下面看看GCD的实现代码: /***求a,b最大公约数***/ long long gcd(long long a, long long b) { if...
阅读全文
摘要:问题是求关于N!的最后一位非0位, 如3!=6,最后一位非0位为6, 5!=120, 最后一位非0位为2.怎么样快速的求出最后一位非0位呢? 最朴素的想法就是先求出N!的结果,再求出结果的最后一位非0位.当N比较小时,是可以承受的,但是当N达到一定规模的时候,时间,空...
阅读全文
摘要:【问题描述】 我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。 每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中j为1到n中的某个数字,为工件号;k为1到m中的某个数字,为工序号,例如2-...
阅读全文
摘要:加法问题 【问题描述】 现在有两个实数,分别是A和B。请你从文件中读取A和B,计算它们的和A+B,并把它输出到文件中。(保留到整数) 【输入格式】 第一行:一个实数A 第二行:一个实数B 【输出格式】 第一行:一个整数C = A+B 【输入样例】 12 【输出样例】 3 ...
阅读全文