自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(89)
  • 收藏
  • 关注

原创 合工大OJ_1372_找零

原文链接:http://www.zlingfly.com/2018/05/12/%E5%90%88%E5%B7%A5%E5%A4%A7OJ-1372-%E6%89%BE%E9%9B%B6/#more题目要求把物品总价值的‘分’进位,思路大概就是把总价值乘以100,然后就相当于如果个位不为0就进位。思路超级简单是不是?但是这题最坑的地方就是总价值*100会爆int。。。#include <io...

2018-05-23 11:13:04 293

原创 合工大OJ_1376_版本依赖

原文链接:http://www.zlingfly.com/2018/05/12/%E5%90%88%E5%B7%A5%E5%A4%A7OJ-1376-%E7%89%88%E6%9C%AC%E4%BE%9D%E8%B5%96/#more题解这就是一道模拟题,我一开始打算把版本号的三个数化成一个大整数比较,结果发现有些数据是一位数有些是两位,比较的时候会出错,所以只能对三个数分别进行比较。#inclu...

2018-05-23 11:11:49 353

原创 合工大OJ_1377_A?H?

原文:http://www.zlingfly.com/2018/05/12/%E5%90%88%E5%B7%A5%E5%A4%A7OJ-1376-A-H/#more题解额。。。那啥。。一般情况下遇到这种题目是要用连通块的,但是这一题有些蹊跷,因为A是封闭的,也就是说用dfs搜是搜不完的,而H能搜完。所以dfs遍历一次,如果有点没搜到,那字母就是A,反之是H。#include <iostrea...

2018-05-23 11:10:31 458

原创 最小生成树--prim

任意选一个点作为起始点,选取离这个点距离最近的点加入生成树,再把生成树中的点当做一个点,继续选取距离最小的点加到树中传送门:hihoCoder.1097#include#include#include#include#include//#define DEBUG#define maxn 1010#define maxm 100010typedef long long L

2017-08-20 13:48:59 243

原创 最小生成树--kruskal

kruskal算法用于求稀疏图的最小生成树图中边权最小的边一定属于某一颗最小生成树,所以先对所有的边按边权由小到大排序,在将边加入到生成树中。加入过程中用并查集检查边是否形成环传送门:hihoCode:1098代码:#include#include#include#include#define maxn 1000010#define maxm 10010type

2017-08-20 13:23:35 266

原创 最近公共祖先--RMQ

传送门:hihoCode.1069#include #include #include #include #include #include #includeusing namespace std;const int maxn = 200005;int first[maxn]; //保存该人第一次访问出现的顺序int deep[2 * maxn];

2017-08-18 11:37:30 262

原创 tarjan求LCA

推荐一篇大佬的博客:LCA最近公共祖先例题:codevs.2370代码:#include#include#include#include#include#include#define maxn 500010#define maxm 100010typedef long long LL;using namespace std;vector G[maxn],

2017-08-17 09:15:54 216

原创 高精度计算

#define MAXN 9999 #define MAXSIZE 1010 #define DLEN 4 class BigNum {private: int a[5000]; //可以控制大数的位数 int len;public: BigNum() { len = 1;memset(a,0,sizeof(a)); } //构造

2017-08-16 13:40:22 266

原创 SPFA

传送门:hihoCoder.1903#include#include#include#include#include#include#define maxn 1000010#define maxm 1000#define INF 0x7ffffffftypedef long long LL;using namespace std;int dist[maxn],

2017-08-15 14:09:42 283

原创 tarjan求强连通分量

const int maxn=100050;int inStack[maxn],dfn[maxn],low[maxn],Index;int inComponent[maxn],componentDegree[maxn],componentNum=0;vectoredge[maxn],component[maxn];stackStack;memset(low,0,sizeof(l

2017-08-15 12:41:45 216

原创 基姆拉尔森公式计算星期

公式:W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。int cal(int y, int m, int d) { i

2017-08-14 21:39:56 278

原创 中国剩余定理--不互质情况

传送门:HDU.1573#include#include#include#define LL long longusing namespace std;const int maxn=100;LL extend_gcd(LL a,LL b,LL &x,LL &y);int main(){ //freopen("in.txt","r",stdin); int t;

2017-08-11 10:56:32 660

原创 中国剩余原理

传送门:POJ 1006介绍一篇大佬的博客:http://972169909-qq-com.iteye.com/blog/1125532#include#include#include#include#define maxn 1010typedef long long LL;using namespace std;int extend_gcd(int a,int b

2017-08-10 13:05:30 311

原创 容斥原理

传送门:HDU 1796常用方法有两种:递归法和二进制枚举法。递归法是利用dfs的思想进行搜索,检索每一种方案进行容斥。二进制枚举的方法最大的好处是能够枚举出所有元素组合的不同集合。假设一个集合的元素有m个,则对于m长的二进制数来说就有m个1或0的位置,对于每一个1就对应一个元素。整个二进制枚举完就是所有子集,从0到2^m就行。[0, 2^m)

2017-08-09 23:09:34 378

原创 同余方程

传送门:POJ 1061#include#include#include#include#define maxn 100010typedef long long LL;using namespace std;int extend_gcd(LL a,LL b,LL &x,LL &y);int main() { //freopen("in.txt","r",std

2017-08-09 16:40:56 205

原创 扩展欧几里得(裸)

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2669•ax + by = (a, b)有解设一个解为(x, y)通解为(x+ k * b / (a, b), y - k * a / (a, b))#include#include#include#include#define maxn 100010typed

2017-08-09 15:26:36 196

原创 最大公约数和最小公倍数问题--分解质因子

原文:http://blog.csdn.net/ADjky/article/details/70504560#include#includeusing namespace std;int cal(int x);int main() { //freopen("in.txt","r",stdin); int x,y; while(cin>>x>>y){

2017-08-09 12:48:03 354

原创 线段树--双标签

#include#include#include#include#define maxn 100010typedef long long LL;using namespace std;LL a[maxn],n,p;struct node{ int l,r; LL sum,alltag,multag;}tr[maxn*4];void build(int id,int

2017-08-08 17:41:39 228

原创 线段树--区间覆盖

#include#include#include#include#define maxn 100010typedef long long ll;using namespace std;int a[maxn],n,q;struct node{ int l,r,sum,tag;}tr[maxn*4];void build(int id,int l,int r);void

2017-08-08 17:39:53 541

原创 线性筛

void makePrime(){ memset(isPrime,1,sizeof(isPrime)); primeCount=0;isPrime[1]=0; for(int i=2;i<maxn;i++){ if(isPrime[i]){ primeCount++; prime[primeCount]=i;

2017-08-08 11:24:48 230

原创 模线性方程组

提示:模线性方程组小Hi:一开始就直接求解多个方程不是太容易,我们从n=2开始递推:已知:x mod m[1] = r[1]x mod m[2] = r[2]根据这两个式子,我们存在两个整数k[1],k[2]:x = m[1] * k[1] + r[1]x = m[2] * k[2] + r[2]由于两个值相等,因此我们有:

2017-08-08 11:16:02 273

原创 扩展欧几里得求Ax+By=1的解

node extend_gcd(LL a,LL b){ node ans; if(a%b==0){ ans.x=0,ans.y=1; return ans; } ans=extend_gcd(b,a%b); LL x=ans.y; LL y=ans.x-(a/b)*ans.y; ans.x=x; ans

2017-08-08 11:10:15 3130

原创 欧几里得求最大公约数

int gcd(int a,int b){ if(a%b==0)return b; else return gcd(b,a%b);}

2017-08-08 11:08:20 226

原创 01Trie求最大异或

#include #include #include #include #define mem(a,b)memset(a,b,sizeof(a))using namespacestd;typedef longlong LL;const int maxn=100000+5;const int maxm=1000+5;int ch

2017-08-08 11:05:22 617

原创 线性筛+区间枚举

题目大意:给出区间a,b求区间内素数的个数但是a,b非常大#include#include#includeusing namespace std;typedef long long LL;const int N = 1e6 + 5;bool vis[N], visab[N];int prime[N], cnt = 0;void is_prime(){ memset

2017-08-07 22:10:39 233

原创 单调队列--滑动窗口

洛谷题目链接:https://www.luogu.org/problem/show?pid=1886代码#include#include#include#includeusing namespace std;const int maxn=1000050;int q_max[maxn],q_min[maxn],a[maxn];int headMax,headMin,tailMa

2017-08-04 11:40:09 261

原创 已知中序、后序 序列重构二叉树

#include#include#include#include#includeusing namespace std;const int maxn=200020;struct Tree{ string str; char x; Tree *l,*r; Tree():l(NULL),r(NULL){};};string s,t;void dfs(

2017-08-03 18:59:55 320

原创 c++ set求差集,并集,交集

#include#include#include#includeusing namespace std;#includeint main(){ freopen("in.txt","r",stdin); setx1,x2,x; x1.insert(1);x1.insert(2); x2.insert(3);x2.insert(2); //交集

2017-08-02 19:47:24 9919

原创 高精度乘法--速度较快

#include#include#include#include#includeusing namespace std;const int maxn=4005;string mul(string str1,string str2);int main(){ //freopen("in.txt","r",stdin); string a,b; cin>>a>>

2017-08-01 17:36:05 287

原创 回溯法求无向图染色

题目描述:花老师有一个农场,农场的花一共有 4 种颜色, 花老师不喜欢老旧的东西,所以,她希望每天种花的方案都不一样。特别地,她也觉得两种一样颜色的花种在相邻的位置会很无聊。现在,她想知道,一共有多少种花的方案。这里要注意的是,农场的种花的位置是不规则的。因此我们给出一对一对的相邻的位置的关系。输入:第一行两个数 N 和 M,表示种花的位置的个数和相邻的位置

2017-08-01 11:32:14 699

原创 高精度算法

#include#include#include#includeusing namespace std;//compare比较函数:相等返回0,大于返回1,小于返回-1int compare(string str1,string str2){ if(str1.length()>str2.length()) return 1; else if(str1.length()

2017-08-01 10:50:44 197

原创 python3 定制词云

翻了一下知乎,发现了以前收藏的制作词云的教程,于是动手试了一下所需环境:        1.python3        2.wordcloud        python原来就安装了,然后就是Wordcloud,安装方法有三个1.使用pip安装,2.使用whl文件安装,3.使用anaconda安装我也不知道为什么,我每次用pip都会爆炸(我好绝望啊),然后开始百度,就下载了适

2017-07-24 21:06:17 1137

转载 快速幂取模算法

文章出处:http://blog.csdn.net/lsldd/article/details/5506933参考文章来源:Reait  Home(http://www.reait.com/blog.html) 转载请注明,谢谢合作。 在Miller Rabbin测试素数,就用到了快速幂取模的思想。这里总结下。求a^b%c(这就是著名的RSA公钥的加密方法),当a,

2017-06-26 20:25:33 257

原创 codevs.1688 求逆序对

题目描述 Description给定一个序列a1,a2,…,an,如果存在i并且ai>aj,那么我们称之为逆序对,求逆序对的数目 数据范围:N5。Ai5。时间限制为1s。输入描述 Input Description第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。输出描述 Output Descripti

2017-06-24 16:37:02 510

原创 codevs.3324 新斯诺克

题目描述 Description斯诺克又称英式台球,是一种流行的台球运动。在球桌上,台面四角以及两长边中心位置各有一个球洞,使用的球分别为1 个白球,15 个红球和6 个彩球(黄、绿、棕、蓝、粉红、黑)共22个球。击球顺序为一个红球、一个彩球直到红球全部落袋,然后以黄、绿、棕、蓝、粉红、黑的顺序逐个击球,最后以得分高者为胜。斯诺克的魅力还在于可以打防守球,可以制造一些障碍球使对方无法击

2017-06-24 14:00:11 298

原创 codevs.1015 计算器的改良

题目描述 DescriptionNCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:    4+3x=8   6a-5+1=2-2a  -5+12y=0 ZL先生被

2017-06-23 19:50:27 274

原创 Uva.10815 Andy's First Dictionary

题目链接:https://vjudge.net/problem/UVA-10815代码如下:#include#include#include#include#include#includeusing namespace std;int main(){ //freopen("Text.txt","r",stdin); char c;

2017-06-21 11:03:36 194

原创 Uva.10340 All in All

#include#include#includeusing namespace std;const int maxn = 10000;int main() { //freopen("Text.txt", "r", stdin); string s, t; while (cin >> s >> t) { int i=0, j = 0; while (j < t.size()

2017-06-18 10:13:07 188

原创 Uva.202 Repeating Decimals

//模拟人脑计算有理数的循环节#include#includeusing namespace std;const int maxn = 10000;int decimal[maxn];struct node { int a, b;};node mark[maxn];int visited(int a, int b, int len);int main() { //freop

2017-06-17 10:58:52 189

原创 锦标赛

时间限制:1秒空间限制:32768K题目描述组委会正在为美团点评CodeM大赛的决赛设计新赛制。比赛有 n 个人参加(其中 n 为2的幂),每个参赛者根据资格赛和预赛、复赛的成绩,会有不同的积分。比赛采取锦标赛赛制,分轮次进行,设某一轮有 m 个人参加,那么参赛者会被分为 m/2 组,每组恰好 2 人,m/2 组的人分别厮杀。我们假定

2017-06-15 22:03:05 370

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除