ACM_新模板
zz你的名字
不奢望过多,只希望未来的自己没有过多的遗憾。
展开
-
表达式求值简单类型总结
nyoj35 表达式求值/*21.000+2/4=((1+2)*5+1)/4=*/#include<stdio.h>#include<string.h>#include<stdlib.h>#include&a原创 2018-05-04 21:24:53 · 321 阅读 · 0 评论 -
java大数a-b
百炼2736import java.util.Scanner;//输入import java.math.BigInteger;//大整数类import java.math.BigDecimal;//大浮点数类public class Main { public static void main(String[] args) { Scanner s=new Sc...原创 2018-03-16 17:20:10 · 354 阅读 · 0 评论 -
java大数a*b
百炼2980import java.util.Scanner;//输入import java.math.BigInteger;//大整数类import java.math.BigDecimal;//大浮点数类public class Main { public static void main(String[] args) { Scanner s=new Sc...原创 2018-03-16 16:56:49 · 325 阅读 · 0 评论 -
java大数a+b
hdu1000import java.util.Scanner;//输入import java.math.BigInteger;//大整数类import java.math.BigDecimal;//大浮点数类public class Main { public static void main(String[] args) { Scanner s=new S...原创 2018-03-16 16:14:14 · 663 阅读 · 0 评论 -
hdu2089 数位DP
hdu2089#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;typedef long long ll;int a[20];int dp[20][2];int dfs(int pos,int pre,i...原创 2018-03-15 20:50:37 · 162 阅读 · 0 评论 -
二分
map::lower_bound(key):返回map中第一个大于或等于key的迭代器指针 map::upper_bound(key):返回map中第一个大于key的迭代器指针 一直搞不清判断和返回值怎么弄,比较迷。 lower_bound,二分查找求下界,就是当ans存在是返回它第一个出现的位置。int lower_bound(int k,int L,int R){ in...原创 2018-01-30 16:42:57 · 186 阅读 · 0 评论 -
hdu4135(容斥原理
题目hdu4135题解容斥原理简单解释: 解释完毕。 那么我们如何求这道题呢? 求[1,m]内与n互质的数的个数=m-[1,m]内与n不互质的个数(听起来就像废话,我一开始也是这么认为的,但是容斥原理就是求[1,m]内与n不互质的个数的)。 那么怎么求?首先举个例子 n除以奇数个数相乘的时候是加,n除以偶数个数相乘的时候是减。 就是这样,最后不懂就看代码吧!原创 2018-01-30 14:50:15 · 298 阅读 · 0 评论 -
poj2356(抽屉原理
题目poj2356思路抽屉原理 现在我们想办法把n变成n个物品,n-1变成n-1个抽屉。 sum[i]表示(a[1]+…+a[i])%n取模,那么sum[i]中表示的数只能是0到n-1,如果是0就满足题意,如果不是0,那么根据抽屉原理sum[i]为n个数,1~n-1中必定存在两个数是相等的。代码#include#include#include#include原创 2018-01-30 08:58:10 · 233 阅读 · 0 评论 -
连通图板子
一.tarjan算法求一个图有几个连通图。#include#include#include#include#include#define mem(a,b) memset(a,b,sizeof(a))#define LL long longusing namespace std;const int maxn=1e5;int n,m;struct node{ in原创 2018-01-17 20:51:04 · 185 阅读 · 0 评论 -
java大数a/b
百炼2737import java.util.Scanner;//输入import java.math.BigInteger;//大整数类import java.math.BigDecimal;//大浮点数类public class Main { public static void main(String[] args) { Scanner s=new Sc...原创 2018-03-16 17:23:12 · 267 阅读 · 0 评论 -
java小数相关
小数保留后k位方法import java.util.Scanner;//输入import java.math.BigInteger;//大整数类import java.math.BigDecimal;//大浮点数类public class Main { public static void main(String[] args) { BigDecimal d ...原创 2018-03-16 18:51:32 · 138 阅读 · 0 评论 -
hdu4638 Group(莫对算法)
hdu4638 题意:第一行输入一个t。t组数据. 第二行n,m。n代表n个数字.m代表询问m次。 第三行输入n个数字. 接下来m行。每行l,r。代表需要查询的区间。 查询的是l-r区间内有几段连续的数字。 eg:1-5 有数字3 1 2 5 4.排一下序:1 2 3 4 5.连续。所以输出1。 2-4 有数字1 2 5 4.排一下序:1 2 5,1 2连续,5连续。所以输出2...原创 2018-04-18 16:25:30 · 348 阅读 · 0 评论 -
P3807 【模板】卢卡斯定理
P3807 【模板】卢卡斯定理#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;#define ll long longconst int inf=0x3f3f3f3f;const int max...原创 2018-04-06 17:40:16 · 286 阅读 · 0 评论 -
母函数
#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std;#define mem(a,b) memset(a,b,sizeof(a))const int maxn=100005;const int inf=0x...原创 2018-03-22 11:59:17 · 123 阅读 · 0 评论 -
矩阵快速幂
斐波那契poj3070#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;#define ll long longstruct mat{ int m[2][2];};mat I={ 1,0, 0,1};mat I1...原创 2018-03-20 20:59:03 · 164 阅读 · 0 评论 -
hdu2594
hdu2594 hash板子题#include<stdio.h>#include<string.h>#include<string>#include<set>#include<iostream>#include<algorithm>using namespace std;const int maxx=500...原创 2018-03-19 20:26:17 · 287 阅读 · 0 评论 -
hdu1285
首先拓扑排序的板子#include<stdio.h>#include<queue>#include<vector>#include<math.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std原创 2018-03-12 18:48:50 · 181 阅读 · 0 评论 -
nyoj737 区间DP
nyoj737 优质博客推荐#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<fstream>using namespace std;#define mem(a,b) memset(a,b,sizeof(a))ty...原创 2018-03-17 18:12:34 · 146 阅读 · 0 评论 -
java大数类用法
转自:http://blog.csdn.net/daniel_csdn/article/details/49534621 在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。 这两个类都在java.math.*包中,因此每次必须在开头处引用该包。Ⅰ基本函数: ...转载 2018-03-16 18:55:22 · 252 阅读 · 0 评论 -
c++ <cctype> (ctype.h) (持续更新)
isalpha//判断字符串是否为大小写字母isupper//判断字符串是否为大写字母islower//判断字符串是否为小写字母tolower//把大写字母转化为小写toupper//把小写字母转化为大写原创 2017-08-01 19:01:11 · 264 阅读 · 0 评论 -
KMP,找出s字符串在T字符中的位置,或有几个
优质博客推荐 hdu1711#include#include#define mem(a,b) memset(a,b,sizeof(a))int a[1000005];int b[10005];int nex[10005];int n,m;void KMP(){ mem(nex,0); nex[0]=-1; int i=0,k=-1; whi原创 2018-01-25 16:13:36 · 679 阅读 · 0 评论 -
LCA,有向图求两点间距离,无向图求两点间距离,倍增
LCA就是求公共祖先。优质博客推荐 但是不推荐它的伪代码,感觉思路没错,但是有点问题。 我随手写了一个,有错欢迎之处int get(int u){ if(f[u]==u) return u; else f[u]=get(f[u]);}void dfs(int u,int pre){ //vis[u]=1;//位置1 for(int i=first...原创 2018-01-20 19:54:36 · 849 阅读 · 0 评论 -
完全背包
转自:(http://blog.csdn.net/wumuzi520/article/details/7014830) 完全背包是在N种物品中选取若干件(同一种物品可多次选取)放在空间为V的背包里,每种物品的体积为C1,C2,…,Cn,与之相对应的价值为W1,W2,…,Wn.求解怎么装物品可使背包里物品总价值最大。 动态规划(DP): 1) 子问题定义:F[i][j]表示前i种物品中选取转载 2017-01-13 17:49:58 · 480 阅读 · 0 评论 -
dp 01背包,完全背包,多重背包 模板
转自http://www.cppblog.com/tanky-woo/archive/2010/07/31/121803.html 首先说下动态规划,动态规划这东西就和递归一样,只能找局部关系,若想全部列出来,是很难的,比如汉诺塔。你可以说先把除最后一层的其他所有层都移动到2,再把最后一层移动到3,最后再把其余的从2移动到3,这是一个直观的关系,但是想列举出来是很难的,也许当层数n=3时还可以模拟转载 2017-01-12 15:54:03 · 699 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home(迪杰斯特拉)
Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she wants to get ba原创 2017-01-14 10:43:34 · 336 阅读 · 0 评论 -
字典树
理解很简单,但是我对指针不太熟悉,明天先把指针再看看,再回来学 学习链接;http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html http://www.cnblogs.com/binyue/p/3771040.html http://blog.csdn.net/jiutianhe/article/details/8076原创 2017-08-05 10:24:39 · 199 阅读 · 0 评论 -
线!线!线!线段树
终于学到线段树了,以前看见很多这样的题,然后暴力,然后TTTTTT了,,,, 我并不打算写了,不过我看到一个非常好的博客,推荐给初学者 http://www.cnblogs.com/TenosDoIt/p/3453089.html#a 特别好玩!!! 最简单的板子(建树,区间最小(大)值,区间和,单节点更新,区间更新) 以0为根节点表示的是整个区间,向左右分叉,左面是左区间,右面是右...原创 2017-08-04 14:21:30 · 301 阅读 · 0 评论 -
sstream c++
1.读入一行,按空格分割:#include&lt;iostream&gt;#include&lt;algorithm&gt;#include&lt;sstream&gt;#include&lt;string&gt;using namespace std;int main(){ string line; while(getline(cin,line))转载 2017-08-02 08:55:03 · 365 阅读 · 0 评论 -
C++中set的用法
1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在ST转载 2017-07-31 19:01:38 · 2796 阅读 · 0 评论 -
多重背包
转自:http://blog.csdn.net/lyhvoyage/article/details/8545852 多重背包(MultiplePack): 有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微转载 2017-01-13 17:56:06 · 661 阅读 · 1 评论 -
poj1847Tram (迪杰斯特拉和弗洛伊得)
Tram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the intersection. W原创 2017-01-17 10:08:40 · 375 阅读 · 0 评论 -
RMQ板子(ST算法)(求某个范围内距离的最大最小值)
优质博客推荐 RMQ板子题:poj3264#include#include#include#include#includeusing namespace std;#define mem(a,b) memset(a,b,sizeof(a))const int maxn=50005;int n,m;int a[maxn];int fm[maxn][35];int fmi原创 2018-01-24 11:21:15 · 289 阅读 · 0 评论 -
逆序数 poj2299 Ultra-QuickSort
Ultra-QuickSort Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 59643 Accepted: 22101 DescriptionIn this problem, you have to analyze a particular sorting algorithm. The al原创 2017-03-22 13:38:51 · 523 阅读 · 0 评论 -
poj2407(欧拉函数)hdu1695(线性求欧拉函数+容斥原理
题目(欧拉函数poj2407 欧拉函数是小于n的正整数中与n互质的数的数目 直接套欧拉函数公式,即将n素分解后有n=p1^k1*p2^k2*…pm^km,则euler(n)=n(1-1/p1)(1-1/p2)…*(1-1/pm) #include#include#define LL long longLL n;LL solve(LL n){ LL ans=n;原创 2018-01-29 17:58:40 · 218 阅读 · 0 评论 -
网络流算法板子
最大流:EK,FF,Dinic,ISAP。因为实现方法几乎差不多,记住最优的即可。 Dinic#include#include#include#include#include#includeusing namespace std;const int maxn=1000;const int inf=0x3f3f3f3f;#define LL long longstru原创 2018-01-13 19:26:13 · 402 阅读 · 0 评论 -
树状数组
树状数组模板很好写,但是不太好理解,主要是一些二进制的东西。 解决的问题:单节点更新,区间求和(虽然线段树都能办到,但是如果题目没有其他要求,这个还是比较好写且bug较少的) 树状数组是一个大佬发现的一种奇特的树(根据二进制搞的树),长下面这样 一,由图可知: c[1]=a[1]; c[2]=a[1]+a[2]; c[3]=a[3]; c[4]=a[1]+a[2]+a[3]...原创 2017-08-05 09:25:57 · 220 阅读 · 0 评论 -
c++中vector的用法详解
简介向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。 vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, vector 也提供转载 2017-08-01 18:08:11 · 334 阅读 · 0 评论 -
BBP算法板子
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6217 百度BBP解释:https://wenku.baidu.com/view/716dbac708a1284ac85043bf.html 板子,不会,别问我#include <cstdio>#include<iostream>using namespace std;typedef long原创 2017-11-07 18:08:27 · 1913 阅读 · 0 评论 -
总结一下最短路径的贝尔曼-福特算法(Bellman-Ford)及用队列优化(spfa)
转发的一二货的:http://blog.csdn.net/riba2534/article/details/54575050 他是从《啊哈算法》上学的,本来想总结一下,一看跟他一模一样,then,,,,,,关于贝尔曼福特算法,假设有n个顶点,我们只需要遍历n-1轮就可以了,因为在一个含n个顶点的图中,任意两点之间的最短路径最多含有n-1条边, 什么原理,我就不讲了,网上大牛博客很多,我在这里上一原创 2017-01-17 16:43:01 · 4710 阅读 · 0 评论 -
C++ Map常见用法说明
map简介C++中map提供的是一种键值对容器,里面的数据都是成对出现的,如下图:每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。 map中常用的方法clear() 删除所有元素 insert() 插入元素 size() 返回map中元素的个数#include<iostream>转载 2017-08-01 10:54:24 · 301 阅读 · 0 评论