
切磋琢磨
文章平均质量分 77
AC_Dreameng
行有余力,则来刷题!
展开
-
POJ 3013 Big Christmas Tree【最短路变形,DIjkstra堆优化+spfa算法】
Big Christmas TreeTime Limit: 3000MS Memory Limit: 131072KTotal Submissions: 23064 Accepted: 4987DescriptionChristmas is coming to KCM city. Suby the loyal ci原创 2016-08-09 16:23:42 · 1897 阅读 · 0 评论 -
“玲珑杯”ACM比赛 Round #4 A -- chess play 【记忆模拟】
题意:给你一个n*m的棋盘,初始是是空的,接下来有多个操作。1,1,x,y:加一颗白棋到(x,y)。1,2,x,y:加一颗黑棋到(x,y)。2,x1,x2:x1行和y2行交换。如果加子的地方原来就有棋子,则覆盖。输出最终的棋盘状态。官方题解:#A. 记忆模拟显然不可以纯暴力地去怼,只需要一个数组去记录第ii行目前真正的在f[i]f[i]行,然后交换操作只需要改变记录数组的值,实现O(1)O(1)交换。直接模拟肯定TLE。由于只是交换行,所以要用一个数组记录当前行在初原创 2016-11-05 20:49:04 · 735 阅读 · 0 评论 -
STL容器的适用情况和缺点
一.各种容器的特性vector典型的序列容器,C++标准严格要求次容器的实现内存必须是连续的,唯一可以和标准C兼容的stl容器,任意元素的读取、修改具有常数时间复杂度,在序列尾部进行插入、删除是常数时间复杂度,但在序列的头部插入、删除的时间复杂度是O(n),可以在任何位置插入新元素,有随机访问功能,插入删除操作需要考虑。deque转载 2016-11-06 14:41:58 · 1008 阅读 · 0 评论 -
POJ 2546 Circular Area【计算几何,计算两圆相交面积】
题意:给出两个圆的圆心个半径,求两个圆的相交面积。要求相交面积,首先要判断两圆的位置关系。参考博客:http://www.cnblogs.com/luyingfeng/p/4130689.html思路 : 分三种情况讨论假设半径小的圆为c1,半径大的圆为c2。c1的半径r1,圆心坐标(x1,y1)。c2的半径r2,圆心坐标(x2,y2)。d为两圆圆心连线的长度。相交面积为Sd=sqrt((x1-x2)^2+(y1-y2)^2)(1)如果r1+r2<=d那么两圆相离,相交面积S=0(2原创 2016-11-23 20:39:50 · 2589 阅读 · 0 评论 -
ACM博客收藏
树状数组各大经典博客初学整合:http://blog.youkuaiyun.com/qq_34374664/article/details/52787481关于背包的几个博文推荐:http://blog.youkuaiyun.com/zwj1452267376/article/details/48034103POJ 1852 Ants(弹性碰撞问题):http://blog.youkuaiyun.com/zw原创 2016-10-11 18:09:38 · 1089 阅读 · 2 评论 -
sscanf基本用法
sscanf()函数也很熟悉,但是sscanf()也用的很少,但是它依然很强大,具体用法以后再去研究,下面先叙述一点简单的用法.#include #include using namespace std;const int maxn=0;int main(){ char str[100]; sscanf("123qwq","%*d%s",str); print原创 2017-04-06 22:09:51 · 1101 阅读 · 0 评论 -
C++重载运算符及const成员函数简述
ACM中,用重载函数会使解题更加方便,但是又需要像c++那样深入理解,遂简单总结了结构体中的重载运算符及const成员函数一些简单的用法.闲言少叙,直接看代码:/** * 行有余力,则来刷题! * 博客链接:http://blog.youkuaiyun.com/hurmishine **/#include #include #include using namespace std原创 2017-04-12 22:18:33 · 1553 阅读 · 0 评论 -
sprintf基本用法
学过c语言的人都用过printf()这个函数,但是对于它的"兄弟"函数sprintf()这个函数就很少有人知道了,但是它的功能比printf()还要强大!由于它比较强大,目前我也只理解了一小部分,现在先把所学的整理下来,以后有时间再去更新,研究.废话不多说,直接上代码#include #include using namespace std;const int maxn=0;i原创 2017-04-06 21:56:58 · 8929 阅读 · 2 评论 -
图论题目建图小结
图论的题目,建好了图,就可以说完成一半的工作了,但是建图总的来说没有几种,但是配合不同的‘工具’就可以玩出不同的花样。这里说的‘工具’指数组或如vector等STL库。一、数组。这样最简单的建图方式,对于一些入门题目可以解决,但数据一大就不行了,并且空间复杂度高,对于稀疏图来说不太适用。可以pass二、用链表动态存储。有点复杂,但实际指针占用内存也有点大。再说有几个人能流利原创 2017-07-12 21:37:50 · 1247 阅读 · 0 评论 -
POJ 3463 Sightseeing【次短路,Dijkstra算法,链式前向星建图】
题意:旅行团每天固定的从S地出发到达T地,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数算法:最短路和次短路。Dijkstra算法。采用邻接表建图。总结:不要用邻接矩阵。因为有重边。 dis[x][2]:dis[x][0]表示起点到x的最短路、dis[x][1]表示起点到x的次短路;arr[x][2]:arr[x][0]表示起点到x的最短路条数、arr[x][1]表示起点到x的次短路的条数;vis[x][2]对应于x和0、1功能为记录该点是否被访问!原创 2016-08-26 10:53:48 · 1290 阅读 · 0 评论 -
最大流 — Edmond Karp算法
Edmond Karp算法的大概思想:反复寻找源点s到汇点t之间的增广路径,若有,找出增广路径上每一段[容量-流量]的最小值delta,若无,则结束。在寻找增广路径时,可以用BFS来找,并且更新残留网络的值(涉及到反向边)。而找到delta后,则使最大流值加上delta,更新为当前的最大流值。(粗体表明需要掌握的概念) 关于反向边:以转载 2016-11-04 17:37:36 · 1542 阅读 · 0 评论 -
【轻松学排序算法】眼睛直观感受几种常用排序算法
1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要<a title="大O符号" href="http://zh.wikipedia.org/wiki/%E5%A4%A7O%E7%AC%A6%E5%8F%B7">Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实转载 2016-10-24 16:41:29 · 496 阅读 · 0 评论 -
ACM常用算法分类
数据结构 栈,队列,链表 •哈希表,哈希数组 •堆,优先队列 双端队列 可并堆 左偏堆 •二叉查找树 Treap 伸展树 •并查集 集合原创 2016-09-02 14:41:54 · 4252 阅读 · 5 评论 -
Codeforces Round #164 (Div. 2) E. Playlist【概率,期望】
题意:有一个歌单,有歌曲的时长和喜欢的概率,每一首歌首先都要听一遍,如果不喜欢听这首歌,就去吧之前喜欢听的歌听一遍,然后继续听剩下的歌曲,问你最后听歌时长的期望值。原创 2016-09-02 23:41:03 · 856 阅读 · 0 评论 -
ACM Java 大数之BigInteger详解
别说话,看代码!import java.math.BigInteger;import java.util.Scanner;public class BI { public static void main(String[] args) { // TODO Auto-generated method stub //构造函数 BigInteger a = BigInteger原创 2016-08-25 11:25:13 · 2232 阅读 · 0 评论 -
STL学习之vector
vector 向量,平时把它当做高级数组使用先写点简单常用的,以后遇到其他的操作在补上简单类型:#include #include using namespace std;int main(){ vectorv; for(int i=0;i<10;i++) { v.push_back(i); } vector::i原创 2016-09-04 22:23:01 · 639 阅读 · 0 评论 -
欧拉函数小结
四、欧拉函数1、定义 在数论中,对于正整数n,欧拉函数就是小于n的数中与n互质的数的数目。 此函数以其首名研究者欧拉命名(Ruler’so totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。例如φ(8)=4,因为1,3,5,7均和8互质。 φ(24)=8,因为1, 5, 7, 11, 13, 17, 1原创 2016-09-22 21:59:20 · 1883 阅读 · 0 评论 -
CSU 1808 地铁【最短路变形】
1808: 地铁obo 居住在大城市 ICPCCamp。ICPCCamp 有 n 个地铁站,用 1,2,…,n 编号。 m 段双向的地铁线路连接 n 个地铁站,其中第 i 段地铁属于 ci 号线,位于站 ai,bi 之间,往返均需要花费 ti 分钟(即从 ai 到 bi 需要 ti 分钟,从 bi 到 ai 也需要 ti 分钟)。众所周知,换乘线路很麻烦。如果乘坐第 i 段地铁来到地铁站 s,又乘坐第 j 段地铁离开地铁站 s,那么需要额外花费 |ci-cj | 分钟。注意,换乘只能在地铁站内进行。原创 2016-09-07 00:48:19 · 1547 阅读 · 1 评论 -
背包问题九讲笔记_01背包
摘自Tianyi Cui童鞋的《背包问题九讲》,稍作修改,方便理解。01背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。限制:每种物品只有一件,可以选择放或者不放问题:在不超过背包容量的情况下,最多能获得多少价值或收益相似问题:在恰好装满背包的情况下,最多能获得多少价值或收益这里,我们先讨论在不超过背包容量的情况转载 2016-09-20 17:55:50 · 749 阅读 · 0 评论 -
斐波那契数列
你真的了解Fibonacci数列吗?转载 2016-11-03 20:30:04 · 957 阅读 · 0 评论 -
全网最!详!细!Tarjan算法讲解。
Tarjan算法讲解的博客网上找到三篇比较好的,现在都转载了,个人只研究了第一篇,正如博主所说,讲的标比较详细,清晰,剩下两篇也可以看一下.以下内容转自:http://www.cnblogs.com/uncle-lu/p/5876729.html全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这转载 2017-07-17 16:17:39 · 19784 阅读 · 13 评论