*Modle Style
WANSNIM
NULL.
展开
-
C语言各种数据类型取值范围
转自:http://blog.csdn.net/mafuli007/article/details/7325510速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int -2147483648 ~ +21474转载 2015-04-22 23:22:45 · 753 阅读 · 0 评论 -
qsort排序方法
在对浮点或者double型的一定要用三目运算符,因为如果也使用整型那样的想减的话,如果是两个很接近的数则可能返回一个小数(大于-1,小于1),而cmp的返回值是int型,因此会将这个小数返回0,系统认为是相等,失去了本来存在的大小关系七种qsort排序方法一、对int类型数组排序int num[100];Sample:int cmp转载 2015-01-27 14:28:20 · 775 阅读 · 2 评论 -
一些数学小思维Tips长期更新积累
1.数根的求法 数根的概念:如果把一个数的各位数字相加得到一个和,再把这个和的各位数字相加又得一个和,再继续作数字和,直到最后的数字和是个位为止,那么这个数就是该数的数根。求法:int num[]={9,1,2,3,4,5,6,7,8};root_x = num[x%9];如果x特别大,比如x有100位,可以先用字符串模拟一次得到一个较小的数x’,然后就可以知道x的数根为 root_x=nu原创 2015-08-27 23:58:52 · 860 阅读 · 0 评论 -
HDU 1251 统计难题(字典树模板题)
题意:先输入单词再输入前缀,统计有相同前缀的单词有多少个。 坑点:一定要用c++交,用g++就T;以前写的字典树从来没有delet这个环节,后来发现自己真是太戳了,借了人家的内存居然不还,补充一下delet模板void del(struct Node *proot){ for(int i=0;i<26;i++) if(proot->next[i]!=NULL)原创 2015-08-16 11:00:24 · 445 阅读 · 0 评论 -
POJ 2456 Aggressive cows(最小值最大化+二分)
http://poj.org/problem?id=2456题意:把C头牛放到N个带有编号的隔间里,使得任意两头牛所在的隔间编号的最小差值最大。例如样例排完序后变成1 2 4 8 9,那么1位置放一头牛,4位置放一头牛,它们的差值为3;最后一头牛放在8或9位置都可以,和4位置的差值分别为4、5,和1位置的差值分别为7和8,不比3小,所以最大的最小值为3。解题思路: 以后看见求最小值中的最大原创 2015-11-14 17:19:37 · 580 阅读 · 0 评论 -
HDU 4738 Caocao's Bridges(无向图求桥)
http://acm.hdu.edu.cn/showproblem.php?pid=4738这是个有点坑的题目。 题目: 曹操在长江上建立了一些点,点之间有一些边连着。如果这些点构成的无向图变成了连通图,那么曹操就无敌了。刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥。但是诸葛亮把所有炸弹都带走了,只留下一枚给刘备。所以刘备只能炸一条桥。 题目给出n,m。表示有n个点,m条桥。原创 2015-11-22 15:14:32 · 556 阅读 · 0 评论 -
POJ 1144 Network (Tarjan求割点)
http://poj.org/problem?id=1144题意:求割点的个数。 裸模板。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int N = 100+10;int ans,rt,rt_num原创 2015-11-17 17:28:55 · 524 阅读 · 0 评论 -
AC自动机入门题(HDU 2222 + HDU 2896)
AC自动机学习资料:http://blog.csdn.net/niushuai666/article/details/7002823AC自动机模板:http://www.cnblogs.com/kuangbin/p/3164106.html我这两个入门题完全是用的Kuangbin大神的板子敲的…..http://acm.hdu.edu.cn/showproblem.php?pid=2896#incl原创 2016-05-26 15:04:55 · 394 阅读 · 0 评论 -
HDU 5685 Problem A (求逆元)
http://acm.hdu.edu.cn/showproblem.php?pid=5685(b/a) % mod = ( b*q ) % mod 。 其中 q 是 a 的逆元。逆元模板:int extendGcd(int a,int b,int &x,int &y){ if (b==0) { x=1; y=0; return a原创 2016-08-01 15:46:18 · 529 阅读 · 0 评论 -
最短路算法模板
最短路算法 - Floyed 适合于有向图和无向图,并且是解决权值不全为负的最短路问题 利用动态规划解决任意两点间的最短路径的算法 时间复杂度是O(n^3),时间复杂度比较高,不适合计算大数据 相关运用:如果是一个没有边权的图,把相连的两点间的距离设为dis[i][j]=1,不相连的两点设为无穷大,用floyd算法可以判断i j两点是否相连。如果dis[i][i] !=原创 2015-08-24 20:38:48 · 559 阅读 · 0 评论 -
POJ 2718 Smallest Difference(DFS+全排列函数)
http://poj.org/problem?id=2718题意: 给从0….9的几个数,让其组成两个整数,保证每个整数没有前导0。求这两个整数的最小差。思路:开始用爆搜将所有的情况都枚举出来求解,结果没有出乎意料的T了。然后想到 如果要使这两个数的差最小,那么应该让这两个数的数的位数接近相等,只需要DFS(n/2) 层。然后剩下的n/2个数可以用一个全排列函数来列出所有的情况再一一求解即可。原创 2015-09-18 13:17:02 · 580 阅读 · 0 评论 -
字典树模板
字典树:用于统计,排序和保存大量的字符串(但不仅限于字符串)。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。3个基本性质:根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。其基本操作有:查找、插入和删除,当然删除操作比较少见原创 2015-08-01 10:10:35 · 314 阅读 · 0 评论 -
位运算应用及详解
位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。 位运算符有: &(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。 其中,按位取反运算符是单目运算符,其余均为双目运算符。 位运算符的优先级从高到低,依次为~、&、^、|, 其中~的结合方向自右至左,且优先级高转载 2015-05-13 23:40:00 · 584 阅读 · 0 评论 -
MultiplePack - 多重背包模板
From《背包九讲》,稍作修改。题目:有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路:这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可。 1.类似完全背包状态转移方程: f[v]=max{f[v-k*c[i]]+k*w[i] }(0原创 2015-08-26 14:18:01 · 650 阅读 · 0 评论 -
ZeroOnePack - 01背包模板
From《背包九讲》,稍作修改。题目:有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路:这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。 状态转移方程是: f[i][v]=max{f[i-1][v原创 2015-08-25 19:08:16 · 551 阅读 · 0 评论 -
CompletePack - 完全背包模板
From《背包九讲》,稍作修改。题目:有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路:类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件..等很多种。 01背包的状态转移方原创 2015-08-26 00:04:38 · 1029 阅读 · 0 评论 -
KMP模板
void calnext()//计算next数组{ int i=0,cnt=-1; next[i]=cnt; while(i<len) { if(cnt==-1 || str[i]==str[cnt]) i++,cnt++,next[i]=cnt; else cnt=next[cnt]; } return;}bool原创 2015-08-01 10:33:13 · 403 阅读 · 0 评论 -
UVa11159 - Factors and Multiples(二分匹配匈牙利算法)
题意是删掉一些点使得两个集合没有整除关系,并且保证删的点最少。 即是求最小覆盖点集,即是求最大二分匹配。二分匹配的几个重要定理: 最小覆盖点数 = 最大匹配数 最大独立集 = 点数 - 最大匹配数 最小路径覆盖 = 点数 - 最大匹配数 最小覆盖点数:假如选了一个点就相当于覆盖了以它为端点的所有边,你需要选择最少的点来覆盖所有的边。 最小路径覆盖:在一个N*N的有向图中,路原创 2015-11-06 19:03:33 · 470 阅读 · 0 评论 -
POJ 3264 Balanced Lineup(RMQ求区间最值)
区间查询最大值或者最小值神模板加神题解: http://blog.csdn.net/liang5630/article/details/7917702http://blog.csdn.net/liang5630/article/details/7917706博主很懒,什么都不想留下..原创 2015-08-01 10:38:01 · 358 阅读 · 0 评论 -
POJ 2823 Sliding Window(单调队列模板题)
http://poj.org/problem?id=2823Sliding WindowDescriptionAn array of size n ≤ 106 is given to you. There is a sliding window of size k which is moving from the very left of the array to the very right. Y原创 2016-08-06 15:37:39 · 482 阅读 · 0 评论