![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 78
千千千千尺
拒绝溺死于鸡汤
展开
-
16.7.23
邻接表(转载)(1.无向图)邻接矩阵看上去是个不错的选择,首先是容易理解,第二是索引和编排都很舒服~但是我们也发现,对于边数相对顶点较少的图,这种结构无疑是存在对存储空间的极大浪费。 因此我们可以考虑另外一种存储结构方式,例如把数组与链表结合一起来存储,这种方式在图结构也适用,我们称为邻接表(AdjacencyList)。邻接表的处理方法是这样: 图中顶点用一个一维数组存储,当然,顶点也可以用原创 2016-07-23 16:48:06 · 233 阅读 · 0 评论 -
字符串处理(库函数)
字符串处理原创 2016-05-11 20:59:12 · 502 阅读 · 0 评论 -
16.7.16
//今日代码 2016-07-16 personal trainingA. Gravity Flip(问改变重力方向之后的按列个数,其实只是简单的排序而已)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cmath>using namespace std;int arr[1001原创 2016-07-16 17:00:16 · 282 阅读 · 0 评论 -
16.7.26
//今日代码 2016-07-26 trainingA. Queue on Bus Stop(有n群人排队坐车,车的最多载客数为m,每群人要一起上车,坐不下的话一起等下一趟车。做法是把上车人数加一下,加到不能加则清空,ans++)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cm原创 2016-07-26 16:20:43 · 258 阅读 · 0 评论 -
16.7.25
数论基础快速乘(转载)快速乘法的思想和快速幂的思想一样,快速幂是求一个数的高次幂,快速乘法是求两个数相乘,什么时候才用得到快速乘法呢,当两个数相称可能超过long long 范围的时候用,因为在加法运算的时候不会超,而且可以直接取模,这样就会保证数据超不了了。LL fast_multi(LL m, LL n, LL mod)//快速乘法{ LL ans = 0;//注意初始化是0,不是1原创 2016-07-25 10:39:12 · 355 阅读 · 0 评论 -
16.7.22
//今日代码 2016-07-22 trainingA. I Wanna Be the Guy(两个人玩游戏各能通过一部分,问1~n是否都能通过。对1~n有出现过的数字标记下,若其中有未被标记的则游戏失败。)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cmath>#inclu原创 2016-07-22 15:58:11 · 288 阅读 · 0 评论 -
16.7.21
//今日代码 2016-07-21 trainingB. Falling Anvils(保证方程有实根则有p - 4q >= 0,答案即给定坐标范围内的几何概率)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<cstring>#include<ma原创 2016-07-21 16:57:04 · 273 阅读 · 0 评论 -
16.7.20
//今日代码 2016-07-20 personal trainingA. I_love_\%username\%(求惊讶值,对每个数每次和max和min对比顺带更新下最大最小值)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<cstring>#i原创 2016-07-20 16:44:16 · 260 阅读 · 0 评论 -
16.7.19
树状数组通常用于维护区间和,也可以变形完成其他作用。查询和修改的时间复杂度均为O(logN)。相对于线段树来说,树状数组能完成的功能线段树均能完成,反之不成立,但是树状数组的代码短,方便调试。题目:现给定N <= 100000个数,进行M <= 100000次操作,操作分两种:1.询问区间[l,r]的和。 2.修改位置i的值为V,即ai=V。显然不可能每次都循环计算区间l到r的和。 在二进制下原创 2016-07-19 14:57:27 · 358 阅读 · 0 评论 -
16.7.18
[STL]set(转载)set能根据待定的排序准则自动将元素排序。不允许元素重复。 构造set集合主要目的是为了快速检索,不可直接去修改键值。 set的默认比较方式是less。常用操作:1.元素插入:insert() 2.中序遍历:类似vector遍历(用迭代器) 3.反向遍历:利用反向迭代器reverse_iterator set < int > s; set< int >:原创 2016-07-18 10:40:58 · 288 阅读 · 0 评论 -
16.7.29
//今日代码 2016-07-29 trainingA. Dress’em in Vests!(n个士兵m件背心,每个士兵有给定适配值,满足 适配值-x 到 适配值+y 区间的背心可供该士兵穿。因为是已经排好序的所以直接开len1,len2两个指针遍历士兵和背心两个数组,若刚好落在区间内ans++指针后移,若小于区间,背心指针后移,大于区间,士兵指针后移。)#include<iostream>原创 2016-07-29 17:04:25 · 363 阅读 · 0 评论 -
16.7.28
//今日代码 FZU 2016 summer trainA. Tram(公交车停靠在n个站点,每次下去a人上来b人,问全程中在车上人数最多的时候为多少。for一遍每次更新max即可。)#include<iostream> #include<cstdio>#include<string>#include<algorithm>#include<cmath>#include<cstring>原创 2016-07-28 17:03:41 · 348 阅读 · 0 评论 -
16.7.27
//今日代码 fzu 7月27日专题练习A - 最少拦截系统(拦截系统发射拦截弹的规则是每一套系统发射出的导弹高度都会低于发射的前一个导弹。问地方按序飞来的这些导弹需要几套系统才能全部拦截。比如5 4 2 3 1这样至少需要两套系统,无论最后一个1被哪个拦下。直接想过去感觉有点复杂,不妨可以想成对于一套从低到高的导弹,一定是用不同的系统拦下的,于是变成了一个求最长不降子序列的问题。)#includ原创 2016-07-28 16:46:33 · 252 阅读 · 0 评论 -
16.7.13
动态规划(转载)动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规划来解题只需要多项式时间复杂度,因此它比回溯法、暴力法等要快许多。 首先,我们要找到某个状态的最优解,然后在它的帮助下,找到下一个状态的最优解。状态 - 要求解的问题。 状态转移方程 - 描述状态之间是如何转移的(如何由子问题得到)。eg:一个数的序列bi,当b1 < b2 <原创 2016-07-13 09:45:03 · 754 阅读 · 0 评论 -
16.7.15
gcd递归求最大公约数int gcd(int a,int b){ if(a>=b) return a%b==0?b:gcd(b,a%b); else return gcd(b,a);}RMQ区间最值查询(ST算法)(转载)RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若原创 2016-07-15 10:37:09 · 287 阅读 · 0 评论 -
16.7.14
优先队列 priority_queue<int> qi;//普通的优先级队列,按从大到小排序 for(i = 0; i < len; i++) qi.push(a[i]); for(i = 0; i < len; i++) { cout<<qi.top()<<" "; qi.pop(); } cout<<e原创 2016-07-14 12:45:57 · 304 阅读 · 0 评论 -
16.7.12
(转载)算法题1 数组中唯一出现1次的数|唯一出现2次的数if(num&0x01) —> ox01就是十六进制的1, //判断num 与 0x01的按位与运算结果, //其实就是 求num二进制的最后一位, //等价于 求num除以2的余数 //等价于 判断num是否为奇数//c语言的按位运算符(转载自) & 按位与 | 按位或 ^ 按位异或1. 按位与运算原创 2016-07-12 13:55:34 · 313 阅读 · 0 评论 -
[STL]MAP
1.构造map<string , int >myMap;2.添加数据Mymap["April"]=4;3.查找元素 map<string,int>::iterator it;; it=Mymap.find("April"); if(it==myMap.end()) cout<<"do not find"<<endl; else cout<<it->原创 2016-05-22 17:28:20 · 253 阅读 · 0 评论 -
2016.12.05 蓝桥杯校赛题解
(搬一下ak小锋的题解)ProblemA 神秘的三位数(代码填空)问题描述 有这样⼀一个3位数,组成它的3个数字阶乘之和正好等于它本身。即:abc =a! +b! +c! 下⾯面的程序⽤用于搜索这样的3位数。请补全缺失的代码。解题思路 模拟,将所有三位数的数字阶乘算出来和原数字⽐比较即可找出,题中阶乘数组已给,因此空 格部分代码为sum+=jc[x%10];Problem B 用一个正整数产⽣生一个原创 2016-12-31 18:37:30 · 2538 阅读 · 0 评论