- 博客(37)
- 收藏
- 关注
原创 EC3-13 Prefer vector and string to dynamically allocated arrays
用new动态分配内存时,意味着还需要:确保之后会delete删除分配的内存,正确的使用delete和delete[],确保一个分配只delete一次。然而用vector和string,就可以避免这些。他们自己管理内存,自动申请内存,析构时自动析构容器中的元素并释放内存。而且,vector和string都是功能完全的STL序列容器,可以使用所有适合序列容器的STL算法。同时,vector和st...
2019-07-07 14:41:13
201
原创 EC3-05 Prefer range memer functions to their single-element counterparts
给2个vector v1, v2,使v1的内容和v2后半部分相同的最简单的操作是什么?答案是:v1.assign(v2.begin() + v2.size() / 2, v2.end());可以看出,使用区间成员函数比相应的单元素成员函数简洁很多且意图清晰直接。区间成员函数使代码更加易写易懂。这不仅仅是风格问题,对于标准序列容器,如果使用循环+单元素成员函数,将会更频繁地拷贝对象,更多...
2019-07-07 13:48:59
141
原创 EC3-1:Choose your containers with care
C++提供了一些容器:标准STL序列容器:vector, string, deque, list.标准STL关联容器:set, multiset, map, multimap.非标准序列容器:slist, rope.非标准关联容器:hash_set, hash_multiset, hash_map, hash_multimap.vector<char>作为string的替代(...
2019-07-07 12:06:56
189
原创 EC3-37 用accumulate或for_each来统计区间
需要用一些灵活的自定义的方式统计区间时可以用accumulate或for_each(accumulate在中)。accumulate的简单用法:vector<int> v = {1, 2, 3, 4, 5};int sum = accumulate(v.begin(), v.end(), 0);//求和 sum=15复杂一些的例子,计算二维点的平均值,Point定义如下:s...
2019-06-21 11:12:42
138
原创 EC3-36 了解copy_if的正确实现
STL中由于一些原因,没有copy_if,以下是copy_if的一种正确实现:template<typename InputIterator, typename OutputIterator, typename Predicate>OutputIterator copy_if(InputIterator begin, InputIterator end, OutputIterato...
2019-06-21 11:06:26
116
原创 EC3-35 通过mismatch或lexicographical比较实现简单的忽略大小写字符串比较
一个STL菜鸟最常问的问题是“我怎么使用STL来进行忽略大小写的字符串比较?",这里用mismatch和lexicographical_compare两种方法实现。首先是mismatch:返回两个范围中第一个不同的位置。代码如下:int ciCharCompare(char c1, char c2)// 忽略大小写比较字符 类似strcmp(返回一个负数、零或正数){ int Ic1 =...
2019-06-21 10:47:36
143
原创 EC3-34 注意哪个算法需要有序区间
STL中的一些算法默认区间是有序的,忽视这个条件可能会导致编译器报错,甚至更糟的情况:编译运行正常但返回错误答案。以下11个算法必须保证给出的区间是有序的,否则会造成未定义的运行期行为:binary_search,lower_bound,upper_bound,equal_range,set_union,set_intersection,set_difference,set_symmetric_...
2019-06-21 10:37:06
95
原创 acm竞赛个人模板
打了这么久acm竞赛,也不过这些篇总结和一堆铜牌而已..得到金牌的同学很优秀,可我们生活过的也是同样的时间,只不过我(我们)投入的少一些,走了一些弯路,做了更多其他的事。虽然写不进履历,但都如实构成了现在的我(我们)。所以我觉得,那些不那么厉害的acmer也不必懊悔,感叹算法的神奇,经历过现场ac了以为超出自我水平的题目时的狂喜,有过全情投入的日子,即使不那么长,就足够了。大学中我也接...
2019-04-09 20:52:48
2645
1
原创 icpc 2017 沈阳个人题解
虽然参加了青岛icpc但那场的题超出我太多..唯一赛后弄会的polya计数已经写到上一篇了...但沈阳的题目还好比较常规 中等题尤其多I Little Boxes签到题目 a+b+c+d 小坑点是小于等于2^62 就是说答案小于等于2^64特判一下和为2^64情况用unsigned long long就好(或者java)各水平的队伍都有不是1A的..所以还是认真点..20...
2019-04-09 20:05:25
653
原创 2017蓝桥杯题解
网上只有题目,没有集中的解析,自己试着写点..虽说蓝桥杯相对简单,然而即使对于acm选手,蓝桥杯也不都是水题..(记得当年没有满分的,但有北大acm金牌选手参赛..)一半以上的题目需要数据结构与算法基础..2个题比较难..(但做对一半至少二等奖,只错2道应该前几名)代码风格偏竞赛,填空题答案对了就行..填代码题同义代码都行,大题是按通过的数据量给分。搜索(bfs,dfs)是考察最多...
2019-04-09 19:57:14
660
原创 2017noip提高组模拟4Day1个人题解
突然发现计蒜客noip的题目不错,大都是带一点算法又不太难的内种(acm铜牌线或以下),可以扫一下芝士盲区。T1 小X的质数求[L,R]区间内是质数或2质数积的数的个数 r<=1e7 最多1e5组询问很基础的题 筛法搞一搞就好 O(nloglogn)的筛法筛2次再处理前缀和注意这个复杂度下要用bool数组不然会超时 线性欧拉筛应该不会卡常数T2 小X的密室...
2019-04-08 14:13:28
188
原创 2016ccpc长春个人题解
B. Fraction签到题,数据范围极小,一个一个模拟就好。#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int n, a[15], b[15];#define LL long longLL ans1, ans2;void...
2019-04-08 14:10:39
314
原创 2015ccpc南阳个人题解
Secrete Master Plan签到题,枚举4种情况判断相同即可。#include<cstdio>#include<cstring>using namespace std;int a[4][2];void turn(){ int te = a[0][0]; a[0][0] = a[1][0], a[1][0] = a...
2019-04-08 14:06:17
234
原创 2014icpc广州个人题解
E C语言级别 排序一下按题目要求输出就好 随意操作完全不卡时间#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct vi{ char s[55]; int x; }a[222];bool cmp(vi q,vi w){ ...
2019-04-08 14:01:14
218
原创 2014icpc北京个人题解
Hdu 5112-5122A 签到c语言级题目 排序求最大差 唯一wa点求绝对值 样例里还体现了...现场赛应该10-15分钟内ac的题目#include<cstdio>#include<algorithm>using namespace std;struct q { int t, x; }a[10005];int cmp(q x, q y)...
2019-04-08 13:59:11
249
原创 2012icpc金华个人题解
试着做了一下以往的asia区域赛 和想象的不大一样...I 求平方和 签到题出的就很没意思..J 怎么搞都行的简单组合数学K 模拟 题目有点长但按照题意认真写就好A 无语..最开始排序加后处理一下 wa 然后各种数学分析复杂度分析...一直wa..其实按a/b排序一下就好...D 模拟的时候看了会 想到了枚举觉得不难 但心态爆炸在a就没做...讲道理是稳银冲金的题目...
2019-04-08 13:53:25
141
原创 2012icpc天津个人题解
H 签到概率题 推公式输入输出B 求因子+进制转换 没什么难点 认真写就好A 麻将胡牌..可怕的模拟C wa了无数发的dp...结果基本思路就错了而且不知道错在哪...E 数学知识 贪心+判连通 比较新奇..F 后缀自动机...很正经的难题K 复杂数据结构 splay伸展树I 数学解复杂方程+最小区间覆盖...这场层次不错 铜金之间尤其好 6题全是...
2019-04-08 13:41:26
139
原创 2012icpc杭州模拟
I 签到c语言题K 裸最小生成树 不小心wa了一发H 任意两点最短路的最长路 map+spfa水过...讲道理算复杂度是常数很大的O(ne) 加上map 还以为会tleJ 看好题意 暴力状态压缩枚举就好B 计算几何 枚举角度计算点到矩形距离C看了半天觉得不可做..没怎么往dp想... 正解是动态规划(或者说递推)...有点难D 二维树状数组+坐标旋转+离散化(或者线段...
2019-04-08 13:35:28
101
原创 2012icpc长春模拟
K 简单数学+二分..开始带偏了节奏tle 后来看错题wawawa...3人读题想清楚再写题的重要性C 据说弄懂题意后分情况搞一搞 有点复杂但不难B 隐藏深的枚举...整数当做32位01 分成32个矩阵分别判断 由于异或运算的唯一解性 数组只要有一个确定 就可以推出每一个元素 所以前2行的异或值可以确定每一个元素 其余值用来check是否可行 类似熄灯问题题解大都写成2-s...
2019-04-08 13:32:17
128
原创 接下来是一些比赛题解..
其实我写过的题解还算不少..(大概有些好为人师不过单独题目的题解都没有保存,写完就发在网上了..还有一些比较初级题目的题解(比如校赛的),写完就发在群里了..不少也没有一直保存。接下来放一些acm区域赛题解(这对我来说比较难..只能写到银牌水平题目,当初写的主要目的是总结和自己看,其次是队友和学弟可能会看,完全不熟悉我也联系不到我的人看起来可能会体验不那么好..),还有零星的简单些的比赛的...
2019-04-08 13:27:11
224
原创 菜鸡acm的专题历程..
以上15篇就是我训练acm这些时间写的全部篇幅稍长的专题..所以说只有铜牌还是有原因的..基础专题都有一些比如扩展欧几里得,计算几何,没有涉及(不只是没有写专题,是真的没学..),训练量也十分有限,除去相似题和直接看题解的和C语言测试题,也就两三百题的样子..后期因为身体和一些原因代码力也很差..脑力也不如从前,只能在徐州写1道随机数生成树题混铜牌..希望对acm有热情的同学..可以抓...
2019-04-02 23:03:00
120
原创 最小生成树
图论 最小生成树这个专题的难度就很友好 学过离散数学或数据结构的都了解最小生成树 就不多说了 算法原理基于贪心 很简洁 用并查集优化一下 最大复杂度就是排序的复杂度O(eloge) 比较模板 作为生成树的基础 熟练一下就好..prim算法的代码就不贴了 复杂度O(n^2) 还没见有题卡O(eloge)不能过 O(n^2)能过的..但并查集那步优化很重要,有的题会卡模板代码:s...
2019-04-02 22:43:48
135
原创 最近公共祖先
最近公共祖先Least Common Ancestors(lca)之前某区域赛银牌题是这个相关,发现高中信息学省赛也有这个...又发现不是太难 可以写一发最近公共祖先就是在一颗树中某2节点最近的公共祖先 字面意思树的图论定义是任意两点有且仅有一条简单路 所以知道树中2点的lca就可以O(1)的算出最短路或其他相关数据 显然比直接用最短路算法快(hdu 2586)但...
2019-04-02 22:38:33
156
原创 acm中的最短路基础
//写了几天图论最短路,做梦都是队列,邻接表啥的...一些最短路算法:Floyd:图灵奖大神弗洛伊德发明的算法(不是梦的解析那位弗洛伊德)。代码最简单的最短路没有之一 3个循环一个赋值,注意中间点在最外层循环。 for (k = 1; k <= n; k++) for (i = 1; i <= n; i++)...
2019-04-02 22:31:27
172
原创 网络流
强烈推荐:北京大学ACM暑期课讲义-网络流,讲的很精华,慢慢看比较容易看懂。最大流:最大流即有向图源点到汇点的最大流量。各种算法的核心思想就是寻找增广路,核心思想就像是贪心,增广路的寻找是搜索(bfs,dfs),再加上各种技巧优化。还有很出名的最大流最小割定理,st2点间最大流=st两点间的最小割。很容易接受的定理..以poj1273为例:O(m*n^2)的di...
2019-04-02 22:25:11
117
原创 acm图论基础总结
首先是图的基本概念和图的遍历之类的基本操作。几个模块,首先是最短路。最短路的复杂度比较低,优化后可以求几十万的数据规模。数学模型是类似差分约束的不等式最优化模型,每个边只有选和不选2种情况。一些模型建图比较玄妙,比如为一个点集加入出点入点,或者求边数最少的路里的最短路,可以把每个边权加一个足够大的值,求出最短路除以这个值就是边数,取模就是最短路长度。连通性:线性...
2019-04-02 22:17:10
364
原创 图论的连通性相关
强连通:有向图中,如果任意2点都相互可达,则该图是强连通图。强连通分量:有向图中,其强连通图子图,称为强连通分量。(缩点后每个点都原图中最大的强连通分量)一个有向图是强连通的,等价于G中有一个回路,它至少包含每个节点一次。(只是一笔画经过所有点回到原点,点可以通过多次,不一定是一个大环,也可能是几个小环的拼接。但环上的所有点一定构成强连通分量)。一些问题只要变成有向无环图就...
2019-04-02 22:13:44
570
原创 二分图相关
第一篇图论,做了一些图论专题发现和其他算法学习的过程不太一样。很多图论算法可以当做黑箱直接使用,变化的地方并不多。难点在于图论本身的知识性的东西和模型转化。二分图:顶点可分为2个不连续子集的无向图。(判断有向图是否为二分图,可以从任一节点开始染色,每个边2端染色不同,判断只有2种颜色时是否每个边染色都能不同)所以二分图等价于不存在奇数环的无向图。eg:西安邀请2018热身赛B题,...
2019-03-30 16:13:43
147
原创 线段树相关
线段树及相关大概是acm/oi选手和计算机相关学生的分界 不会线段树可以说acm/oi就还没入门(虽然最近才开始认真看...) 前置技能是递归和基础树的知识区间最值即给一数组 多次询问区间的最(大,小)值直接模拟 单次查询复杂度O(n)而用dp和二进制的思想 可以做到O(nlogn)的空间复杂度 O(nlogn)时间的预处理 O(1)的查询数组Dp[n][log...
2019-03-30 16:02:59
97
原创 基础数论
发现涉及计数的题目经常涉及逆元之类的 先看数论好了基础数论还是挺友好的...数学常识,质数筛,欧拉函数筛,gcd,扩展欧几里得,大概就这些内容数学常识质数都知道的 相当于是正数的原子 质数有无限个 1不是质数唯一分解定理:每个大于1的正整数n可以唯一写成pi是质数,ni是整数根据乘法定理,加上唯一分解定理可以推导:对于整数n,可以整除它的数(n%x==0)数目为:,相当于...
2019-03-30 16:00:11
467
原创 kmp和字符串相关
Kmp思想难代码简单的模范算法 贪心 dp搜索之类的算法被没有事先了解过的人灵机一动想到都可以理解 但没有接触过kmp算法的人想到这个算法就不太可能把最常用算法之一:字符串匹配的复杂度降低数量级 kmp取自3个发明人的首字母比如给出2个串 ab 求b在a中出现的次数(主串中出现了多少个模式串)通常暴力一位一位的匹配 复杂度最坏是O(n*m)(随机字符串时常数很小 ...
2019-03-30 15:55:57
140
原创 数位dp
数位dp个人理解是 针对数位计数这类特定问题的高效记忆化搜索方法,用途很窄但比赛很喜欢出...(数位就是按照k进制写 数字中的每一位 有点字符串的意思)因为只针对数位计数这一特定问题,基础思想不是太简洁。入门时花了不少时间才理解 所以特地写一点入门的内容吧 需要基础记忆化搜索的前置技能以最简单的问题为例 寻找小于等于x的数里 数位中含49的数的个数暴力找的话 复杂度O(nlo...
2019-03-30 15:49:40
132
原创 搜索入门
搜索大概是我第一个有一点点领悟的专题 入门比较简单 需要树的基础发现我写过2篇搜索入门..下面是整合的..可能有重复Bfs 广度优先搜索 以深度为层遍历所有可能 用队列实现先加入起点(根节点) 在队列非空的时候 取头结点 确定传递过程 判断是否访问过 加入符合条件的节点到队尾时间复杂度是搜索空间大小 队列通常用stl一点时间优化是 如果搜到了终点就可以跳出...
2019-03-30 15:33:05
211
原创 动态规划基础
动态规划说是一种算法,私以为不如说是一种思想...它没有相对固定的模板,写起来一般也不长..最典型的就是数塔和爬楼梯问题,初学者可以好好体会这两个问题..然后可以看比较经典的,背包,最长递增序列,公共序列之类的。倒不用把背包9讲看的非常透彻,了解思想能做一些题就好,日后还会回头看的..再之后可以接触区间动态规划(这种题用记忆化搜索很好写),树形dp(这需要一定的图论基础),状态压缩(位...
2019-03-30 15:20:27
191
原创 博弈论与sg函数入门
记录一点结论性的东西,推导见百度吧。首先博弈的前提是双方“绝对理智”。一般的胜负博弈游戏来说,有以下几点:(注意必胜必败是针对这回合操作的人)所有终结状态为必败点(比如五子棋a下出5连珠后,轮到b走,而5连珠为终结状态,所以b败,叫做必败点)。所有1步操作能进入必败点的点为必胜点(比如该a走时a有4连珠,a只要能走出5连珠就进入了(b的)必败点,此时a必胜)。某点的...
2019-03-30 14:42:06
254
原创 polya计数
icpc青岛一个polya计数金牌题(可以说这场除了签到就是金牌题...) 当时隐约觉得这种组合数学问题似乎不是纸上就能推导出一个初等数学公式然后套一套模板就能出的…但也不是太难 专题4小时就可以入门+编完吧以下只要高中数学基础(证明和实现需要群论和数论)置换:把一个集合中的元素映射到自身集合的双射(可以当做n个点n条边且每个点出度入度均为1的图)比如1 2 3 4...
2019-03-30 14:31:05
590
原创 从sina博客转来的新人
之前写过一些编程相关的东西,主要是acm竞赛里的算法,题解什么的。正在写剑指offer的题目,相对容易的多。今后也会写一些东西,应该会偏实践,和程序员工作相关一些。先把之前写的东西整理整理粘贴过来.....
2019-03-30 14:27:28
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人