随笔分类 -  学习笔记

摘要:习惯了用cin 很多人会说cin的速度比scanf慢很多, 其实不然. cin慢的原因主要在于默认cin与stdin总是保持同步, 这一步是消耗时间大户. 只需要加上std::iOS::sync_with_stdio(false)来关闭同步就好了, 速度甚至要优于scanf. 阅读全文
posted @ 2017-08-13 09:23 *zzq 阅读(1501) 评论(0) 推荐(0)
摘要:最经典的一个区间dp问题是矩阵链乘问题,算导和一些算法书上都有介绍, 给出N个矩阵和他们的规格,满足相邻的矩阵都能合法的进行矩阵乘法的运算,我们定义一个(a*b)和一个(b*c)的矩阵做乘法,乘法次数为b*b*a*c 求解最少的能将所有矩阵乘在一起的次数。 第一次见这个问题是cj同学随手拍给我的一道 阅读全文
posted @ 2017-08-08 14:08 *zzq 阅读(1709) 评论(0) 推荐(0)
摘要:链接http://poj.org/problem?id=1160 很好的一个题,涉及到了以前老师说过的一个题目,可惜没往那上面想。 题意,给出N个城镇的地址,他们在一条直线上,现在要选择P个城镇建立邮局,使得每个城镇到离他最近的邮局距离的总和尽量小。 首先提一个这个问题的简化版本,如果P=1得话,这 阅读全文
posted @ 2017-08-07 19:37 *zzq 阅读(705) 评论(0) 推荐(0)
摘要:声明: 本文转载自网易博客: http://blog.163.com/dqx_wl/blog/static/2396821452015111133052112/ 四边形不等式优化_石子合并问题_C++ 在动态规划中,经常遇到形如下式的状态转移方程: m(i,j)=min{m(i,k-1),m(k,j 阅读全文
posted @ 2017-08-06 23:36 *zzq 阅读(507) 评论(0) 推荐(0)
摘要:放题目链接 https://vjudge.net/problem/22021/origin 给出一个n*m的01矩阵,1可走0不可通过,要求走过的路可以形成一个环且可以有多个环出现,问有多少不同的行走方案; 这道题目可以有多个环而不是限制为一个环,大大减弱了题目的难度,我还是想了好久。 先简单介绍一 阅读全文
posted @ 2017-07-29 10:53 *zzq 阅读(293) 评论(0) 推荐(0)
摘要:对于不是在main函数外定义的 char str[105]; 注意str内并不是初始化为了'\0'的,如果赋值不好会出现乱码,最好清零一下再使用。 gets(char *buf) 函数 从屏幕上得到一串字符串存入buf'=中,可以读取空格,遇到回车结束读取。 stringstream //包含于 < 阅读全文
posted @ 2017-07-28 21:23 *zzq 阅读(111) 评论(0) 推荐(0)
摘要:高中没好好学现在发现真是一窍不通。 首先说排列公式,A(n,m),含义就是从n个不同的元素中挑出m个有多少种不同的排列方式,即abc,acb算是不同的排列方式。 我们不妨这样想,第一次挑时有n个元素,第二次剩下(n-1)个,第三次(n-2)个......所以答案就是n*(n-1)*(n-2).... 阅读全文
posted @ 2017-07-19 17:25 *zzq 阅读(3061) 评论(0) 推荐(0)
摘要:首先说明逆元的概念,类似于倒数的性质。 方程ax≡1(mod p),的解称为a关于模p的逆,当gcd(a,p)==1(即a,p互质)时,方程有唯一解,否则无解。 对于一些题目会要求把结果MOD一个数,通常是一个较大的质数,对于加减乘法通过同余定理可以直接拆开计算, 但对于(a/b)%MOD这个式子, 阅读全文
posted @ 2017-07-16 23:37 *zzq 阅读(13728) 评论(1) 推荐(5)
摘要:优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 作用域操作符 后置自增操作符 后置自减操作符 (a + b) / 4; array[4] = 2; ptr-> 阅读全文
posted @ 2017-07-06 14:37 *zzq 阅读(278) 评论(0) 推荐(0)
摘要:今日看了算导上关于归并排序的思想没看伪代码试着自己先练习下: #include<iostream>#include<cstdio>#include<algorithm>#include<time.h>using namespace std;#define inf 2147483647+5int b[ 阅读全文
posted @ 2017-07-05 18:11 *zzq 阅读(135) 评论(0) 推荐(0)
摘要:我们令ai表示一个时间区间,具有两个属性si,ei表示开始和结束时间. 现在给定一个a的集合Sk,从Sk中找出一个最大兼容子集,即找出尽量多的时间区间且这些区间互不相交。 以前只是知道按照结束时间排序然后直接贪心即可,没想过证明,昨晚看了黑书的证明。 首先我们假设这么一个定理:令am是Sk中e最小的 阅读全文
posted @ 2017-06-17 09:35 *zzq 阅读(1062) 评论(0) 推荐(0)
摘要:最近也写了一些dp,感觉对于状态的转移有了点小小的体会 像之前写的都是一些经典的dp背包啊,LIS之类的,最近写了一些感觉更在于寻找状态的dp,当然也不是很难,太难的我也不会。 目标答案一定是由前一个状态来表示从而地推,dp的难处就在于如何用简单的数组来表示复杂的状态转移的过程,这也是我们要做和练习 阅读全文
posted @ 2017-06-11 15:47 *zzq 阅读(344) 评论(0) 推荐(0)
摘要:最近学习了floyd的奇妙用处,求解最小环,自己的领悟写在了纸上。 对于一个最小环,显然至少要包含三个点(此处不把两个点的回路称之为环) 从大体上考虑的话,一定有一个点与左右两侧的点是直接连接的(即不经其他点的松弛),我们不妨设这个点为k 对于floyd,也是也k的遍历作为松弛条件,所以考虑使用fl 阅读全文
posted @ 2017-05-15 12:59 *zzq 阅读(4637) 评论(0) 推荐(1)
摘要:我们都知道对于十进制数,只要这个数能除尽3/9则他个位数字之和也能除尽3/9,以前只知道用没有证明过,下面来简单证明一下。 对于十进制数,举个简单的例子,这个数是abcd,他表示的大小就是 x=1000*a+100*b+10*c+d , 我们对他进行转化 x=999*a+99*b+9*c+(a+b+ 阅读全文
posted @ 2017-04-09 15:05 *zzq 阅读(3969) 评论(0) 推荐(1)