ACM日记
文章平均质量分 51
LEONNNOP
这个作者很懒,什么都没留下…
展开
-
ACM日记_17.3.27——偷懒的字符串处理一道
因为是从小伙伴那里拿来的题目,不知出处,只好归为日记下的一篇。这道题目很简单,代码也不是我敲的咳咳咳,但是字符串处理乍一看真是挺吓人,不过稍稍用点string类就瞬间简单许多,遂记之。题目:代码如下://3.26#include #include #include #in原创 2017-03-27 23:18:34 · 277 阅读 · 0 评论 -
ACM日记_17.5.01——矩阵快速幂整理(例题i:Fibonacci POJ - 3070)
原题略,主要考察的是矩阵快速幂的做法,直接输出结果就好,灰常适合做模板!遂记录之!#include #include #include #include #include #include #include #include #include #define Mod 1原创 2017-07-21 12:40:08 · 370 阅读 · 0 评论 -
ACM日记_17.5.01——数位DP自整理(例题:HDU 2089 不要62)
脑子笨,学东西就是比较难受,看了很久才把一道基础的数位dp啃完,心酸致死。模板与原题代码出处均为:点击打开链接数位dp几个让人摸不着头脑(因为没有脑子)的点:时刻记得,动规其实就是带着脑子的枚举,所以我们要做的第一步肯定是枚举全部,其次,啥叫动点脑子呢,就是一些我们已经枚举过的完全相同的部分记录下来即可,这个都是对应的多种状态。dp[pos][sta]即当前为第几位(第零位为个位)原创 2017-05-01 16:32:09 · 230 阅读 · 0 评论 -
ACM日记_17.5.01——sort的用法
标准库函数sort使用的好可以省去很多事情。用之前不要忘记:#includesort有三个参数,前两个是待排序数组的起始与结束地址。第三个参数非常重要,传入一个compare函数的函数名即其地址。默认情况下,sort对数组内元素进行升序排列,那么我们可不可以对其进行降序排列呢,这时候就要用到compare啦。bool compare(int a,int b){ return ab原创 2017-05-01 16:05:19 · 216 阅读 · 0 评论 -
ACM日记_17.5.01——控制格式的输出就只会printf了?cout也可以!
其实标题里说的那种情况就是我啦,碰到固定几位小数,精确到多少多少的就一脸懵逼,投奔printf了。其实cout必然也是可以的,我们需要一个叫输入输出控制符的东西。全部的控制符参见:点击打开链接此处只给出一般常用的(我做ACM时自己用到的)几种:cout<<fixed<<setprecision(8)<<a;//保留八位小数cout<<setprecision(8)<<a;//共输出八原创 2017-05-01 15:49:19 · 254 阅读 · 0 评论 -
POJ - 2236 Wireless Network (并查集+自用模板v1.2)
转眼又是一万天没有写题惹,好愧疚,标题里打上自用模板,就是写好惹,自用的啦,不介意取走,也很欢迎修改,但是不接受人身伤害,哼唧,玻璃心。本题属于并查集中比较简单的。并查集的题目,需要搞明白的就是,什么是结点,哪些节点已在一个集内,什么条件下可以合并就可以了。题目链接:点击打开链接本题分析:每次修好的电脑是一个新的结点,遍历其余结点,若距离可以就join一波。原创 2017-03-26 11:53:56 · 472 阅读 · 0 评论 -
ACM日记_17.3.14——神奇的0x3f3f3f3f
十六进制的0x7fffffff,对应的是32位中的int的max,把它作为INF在不做运算的时候是可行的,但是如果在使用前进行了加减之类的运算,很可能溢出为负值导致错误。常用的数字时0x3f3f3f3f,看了别的博文,这个数字确实巧妙哇!既满足无穷大加有限为无穷大,又满足无穷大加无穷大为无穷大!普遍的用法有:1.#define INF 0x3f3f3f3f直接做INF用。原创 2017-03-14 18:19:41 · 509 阅读 · 0 评论 -
ACM日记_17.3.14——高精度算法
实数运算不外乎加减乘除,所谓高精度就是数据范围大到标准类型受不了233,这时候就用数组模拟小学生竖式运算就好啦!更详细的讲解与代码实现可以看:点击打开链接原创 2017-03-14 16:19:10 · 310 阅读 · 0 评论 -
ACM日记_17.3.14——快速幂取模
代码转载自:点击打开链接至于快速幂取模中的证明省略,主要就是用位运算的思想,有二分的效果。 #include using namespace std; //计算a^bmodn int modexp(int a,int b,int n) { int ret=1;原创 2017-03-14 16:05:17 · 340 阅读 · 0 评论 -
ACM日记_17.3.14——输入均为独立字母与数字时的处理
当遇到读入并判断与对应字母对应的字符时,非常常见并且易于想到的办法是开一个结构体数组,其实完全没必要。只需要像下面这样:char r(char ch) { if(isalpha(ch)) return rev[ch-'A']; return rev[ch-'0'+25]; //前26用来存英文字母 }那么如果是进行词(?)频统计的时候,只需要:for(in原创 2017-03-14 15:16:36 · 253 阅读 · 0 评论 -
ACM日记_17.3.14——*最大公约数*与*最小公倍数*
int gcd(int a,int b){ if(b==0)return a; return gcd(b,a%b);} cnt=a/gcd(a,b)*b;此处采用先除后乘是为了避免相乘结果过大导致的溢出。原创 2017-03-14 15:05:04 · 182 阅读 · 0 评论 -
ACM日记_17.3.27——素数打表还不会?等等,先弄明白到底什么是打表!
说到素数咱们就不得不说说筛法打素数表啦。代码很经典也很易懂,就是排除。下面给出一种实现:void prime_table(){ is_Prime[1] = 1; for(int i = 2;i<sqrt(N);++i) { if(!is_Prime[i]) { for(int j = i*i;j<N;j+=i) { is_Prime[j] = 1;原创 2017-03-28 20:48:44 · 725 阅读 · 0 评论 -
ACM日记_17.7.22——多重背包模板
#include #include #include using namespace std; int dp[100009],c[100009],w[100009],m[100009]; int n,M,t; void zeropack(int cost,int weight) { for(i原创 2017-07-22 00:54:15 · 282 阅读 · 0 评论