![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数学方面、
文章平均质量分 57
Yokile_
不知道
展开
-
51nod 1315
这题思维方面要求还是有的、先把数划分为两种,一种是可能删去的,一种是不可能删去的, 不可能的数有两种 第一种:如果一个数a|x>x那么a肯定不可能删去,因为含有它的子集根本|不到k, 第二种:要|操作得到k,那么把k化为二进制比如 1011, 如果一个数是111,那个这个111就肯定是不可能删去的,它|之后会让第三位为1,也就不可能达到k、那么把剩下的数也就是说将他们原创 2016-09-13 21:12:38 · 227 阅读 · 0 评论 -
容斥原理
资料:传送门原创 2016-11-24 14:58:15 · 204 阅读 · 0 评论 -
矩阵专题
参考矩阵资料:资料首先是一道入门题NYOJ623就是求两个矩阵的乘积, 数据又给的很友好所以#include#includetypedef long long ll;const int qq = 55;struct rec{ ll mar[qq][qq]; rec(){ memset(mar, 0, sizeof(mar)); }}a, b;void mult原创 2016-10-28 20:49:30 · 220 阅读 · 0 评论 -
codeforces 358C
题意:有三种数据结构,栈 队列 双端队列, 每次遇到一个非0的数就可以把这个数放到 栈顶or队列尾or 双端队列的前面或者尾部, 当遇到0的时候最多可以提取三种数据结构中的一个数字, 栈顶的数 + 队列的头部 + 双端的头或尾, 使得每次提取的结果最大,且提取完后三种数据结构全部清空。请模拟整个操作过程。思路:因为每次遇到0之后数据会全部清空,那也就是说我们只要找到0之前的最大的三个数原创 2016-10-01 20:10:28 · 294 阅读 · 0 评论 -
codeforces 361C
题意:给出n,m代表有一个数列有n个元素,m次操作, 操作类型1 代表从l dao r内的所有元素都加上d, 操作类型2 代表从l 到 r内的最大值是 x,求任何一个满足题意的数列、思路:实际上需要求出每一位上可能的最小数值, 就如题解上说的 a[i] + diff[i] a[i] #include#include#include#include#includeusin原创 2016-10-01 19:32:19 · 202 阅读 · 0 评论 -
codeforces 362C
题意:给出一个数n,然后给出n个数,问交换其中某两个数所形成的新的数列得到的逆序数最少,输出最小逆序数并且输出有几种交换方式、思路:看看题,n的最大只有5000,n^2的算法还是能挺过的、 我们发现交换两个元素a b实际上逆序数改变只会来源于a b之间的数, 以及 a b两个数本身,如果我们知道了a b两个数之间的数和a b形成的逆序数,那么我们就可以利用容斥原理算出交换后产生的逆序数。原创 2016-10-01 13:43:04 · 487 阅读 · 0 评论 -
codeforces 356B
题意:给出一个n,m 然后给出两个串的循环节, n代表第一个串有多少次循环,m代表第二个串有多少次循环,问两个串的Hamming distance是多少,这个距离是指对应位置的字符如果相等对结果的贡献就是0,否者就是1.思路:参考:传送门#include#include#include#include#include#include#include#include#incl原创 2016-09-30 19:03:58 · 421 阅读 · 0 评论 -
codeforces 353B
题意:给出2*n个数,要求n个数放在第一堆, 剩下n个数放在第二堆,现在从第一堆拿一个数aa 第二堆拿一个数bb 组成aabb的形式、 要求能组成的aabb的数在尽可能多的情况下,数值尽可能大、思路:要求能组成的尽可能多嘛、 那么我们不妨把只出现一次的数统计下来有多少,出现二次及一上的话就第一堆放一个第二堆放一个, 那么那些只出现一次的数的话就平均分给第一堆和第二堆,这样才可以达到组成的数最原创 2016-09-28 12:27:14 · 238 阅读 · 0 评论 -
CodeForces 347 C. Alice and Bob
题意:给出n个不相同的数组成一个集合,问每次在集合中选两个不相同的数做差,差的绝对值不能出现在集合中,然后加入这个数到集合中,Alice先操作,问最后谁赢了思路:找出最大的一个数,并且求出n个数的最大公约数,最后能添加的数就是maxn/res - n、然后判断奇偶#include#include#include#include#includeusing namespace std原创 2016-09-26 16:10:07 · 362 阅读 · 0 评论 -
HDU 4135
题意:求a到b之间与k互质的个数思路:容斥原理#include#include#include#include#includeusing namespace std;typedef long long ll;const int qq = 10005;int num;int prime[qq];void Analyze(ll x){ for(ll i=2原创 2016-10-10 23:29:18 · 394 阅读 · 0 评论 -
51nod 1073约瑟夫环问题、
之前是一直没弄懂映射的问题、自己来说说、找出最后胜利的那个人首先我讲一下以n=6,k=2的情况 0 1 2 3 4 5 6、删除第一个还剩下 0 2 3 4 5 6 然后以2开始映射到5 0 1 2 3 4、 这个解出来答案是2、这个可以看成n=5,k=2时的答案,然而这个答案2映射对应的4就是n=6,k=2时的答案参考:传送门#includeint mai原创 2016-09-05 19:50:38 · 1151 阅读 · 0 评论 -
51 nod 1050
和求最大的子段和有点像,但是是循环数组,首先我们知道如果不循环 那么就和求最大字段和一样,也就是说此子段的起点是小于终点的, 如果是循环数组那么我们可以知道此时可以是子段的起点大于重点,那么对于中间的一段显然是最小的子段和,大体就是分情况讨论第一种:子段的起点小于终点第二种:子段的终点小于起点,此时起点和终点的部分就是最小的子段和 #include#include#incl原创 2016-09-08 18:40:37 · 196 阅读 · 0 评论 -
51nod 1094
这题主要是有负数,如果没有负数的话我觉得到可以用尺取法做一做、我这题的思路做一个前缀和并记录那个前缀的末位置,排序前缀和,类似暴力枚举的思路 判断sum[i] - sum[j] = k, 枚举每一个前缀分别是sum[i]还是sum[j]讨论 这里用二分找,我们找到数组里面第一个大于等于这个数的位置,然后依次向前推,看是否满足条件,因为满足的位置可能不止一个所以要向前推,注意这里要保证i最小的情原创 2016-09-07 21:02:05 · 228 阅读 · 0 评论 -
codeforces 484B
题意:给出一个数列a, 让你求ai mod aj 的最大值,且ai>aj思路:枚举+二分、 枚举每一个数的倍数,要使得结果最大肯定要找到小于这个倍数的最大值,这一注意最后要加的那一句代码、#include#include#include#includeusing namespace std;const int qq = 200000+10;int num[qq];int ma原创 2016-09-07 19:20:42 · 440 阅读 · 0 评论 -
51nod 1278 相离的圆
这题的话看别人做的很巧妙、把起点和终点放在一起去排序,如果起点和终点相同就起点在前面然后定义一个num=n 代表有n个圆,一个sum代表最后求的的结果,如过碰到起点就num--,碰到重点就sum+=num,加上num是因为这个终点后面还有num个起点,且这些起点的x坐标都比当前终点坐标要大我的思路是先对终点坐标进行排序,然后枚举每一个起点坐标二分查找小于它的第一个终点的位置原创 2016-09-05 21:55:06 · 260 阅读 · 0 评论 -
51nod 1279
要明确一定盘子是从给定的序列从左到右扔进去的、这样说吧、盘子能不能扔到一个位置是看盘子能不能从最顶上落到这个位置,换句话说就是这个位置前面有没有长度小于这个盘子长度的值、那么我们维护一个最小值,minx[i]代表从顶到i这个位置的最小值是多少、接下来就要从这个井的尾巴开始扫,如果碰到minx[i]>=dish[j]的话说明这个盘子可以落到i这个位置、为什么从尾巴开始扫呢、 仔细想原创 2016-09-15 20:52:25 · 429 阅读 · 0 评论 -
关于1到n所有数的lcm、
首先我们来求一个简单的n的范围是1 <= n <= 1e5,答案去模一个数一个很简单的思想就是对1到n内直接做一次lcm,但答案会超过long long,取模条件下是不对的所以我们考虑分解一下,对于x、y两个数求lcm 等于 x / gcd(x,y) * y,当我们将x、y进行素数分解后,我们可以知道gcd(x, y)实际就是 x的素数 并 y的素数,我们可以假设某个素数在x中有a个 ...原创 2018-04-10 10:02:07 · 1762 阅读 · 0 评论