C++类
文章平均质量分 67
zclzslz
唯一永远不改变,是不停的改变
展开
-
SPFA计算路径
SPFA是比较有名的最短路算法,但如何找到最短路路径是一个“难题”,下面给出一种方法。 #include #include #include #include #include #include using namespace std; const int N=2500+5,M=6200+5; struct edge { int u,v; edge *next; }原创 2016-06-07 16:26:14 · 262 阅读 · 0 评论 -
【转】C++并查集路径压缩
使用并查集查找时,如果查找次数很多,那么使用朴素版的查找方式肯定要超时。比如,有一百万个元素,每次都从第一百万个开始找,这样一次运算就是10^6,如果程序要求查找个一千万次,这样下来就是10^13,肯定要出问题的。 这是朴素查找的代码,适合数据量不大的情况: int findx(int x) { int r=x; while(parent[r] !=r)转载 2016-09-28 20:24:12 · 1393 阅读 · 0 评论 -
lgP3392涂国旗
题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗。(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的。 接下来若干行(>=1)的格子全部是蓝色的 剩下的行(>=1)全部是红色的 现有一个棋盘状的破布,分成了N行M列的格子,每个格子是白色蓝色红色之一,小a希望把这个布改成该国国旗,方法是在一些格子上涂颜料,盖住之前的颜色原创 2016-09-25 19:47:08 · 557 阅读 · 0 评论 -
生成全排列的省事方法
生成一个数的全排列,对很多人来说都不是难事。通过递归或非递归的方式,可以生成全排列。对于一些题目的暴力解法是必不可少的。下面总结了几种生成全排列的方式。 1.递归不交换式(dfs): void dfs(int dep) { if (dep>n) { check(); return;} for (int i=1;i<=n;i++) if (!vis[i]) { v原创 2016-07-28 21:15:59 · 321 阅读 · 0 评论 -
洛谷P1346 电车题解
题目描述 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。 为了行驶向目标地点,电车司机不得不经原创 2016-07-23 17:07:06 · 615 阅读 · 0 评论 -
洛谷 P1182数列分段Section II
题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小。 关于最大值最小: 例如一数列4 2 4 5 1要分成3段 将其如下分段: [4 2][4 5][1] 第一段和为6,第2段和为9,第3段和为1,和最大值为9。 将其如下分段: [4][2 4][5 1] 第一段和为4,第2段原创 2016-07-11 11:10:24 · 1041 阅读 · 0 评论 -
洛谷P1316 丢瓶盖
限时3秒 本题是一道较简单的二分题,想练练二分的可以尝试。和NOIP2015第二天第一道题目跳房子类似! 废话不多说,上代码: #include #include #include #include #include #include using namespace std; int l,r; int a[1000005]; int n,m; int main() { scanf(原创 2016-07-10 15:56:48 · 865 阅读 · 2 评论 -
vijosP1282 佳佳的魔法照片
本人是第一次写博客,所以先来一道简单一点的题目! 背景 佳佳的魔法照片(Magic Photo):如果你看过《哈利·波特》,你就会知道魔法世界里的照片是很神奇的。也许是因为小魔法师佳佳长的太帅,很多人都找他要那种神奇的魔法照片,而且还都要佳佳和他的MM的合照。那些照片可是非常珍贵的,他到底应该把照片给谁呢? 描述 一共有n个人(以1--n编号)向佳佳要照原创 2016-06-06 16:13:18 · 1326 阅读 · 1 评论 -
NOIP模拟题 NBA
NBA工资 (NBA.pas/c/cpp) 【问题描述】 NBA为了控制球员工资的总额,推出了奢侈税制度。 NBA球队的工资总额一旦超过奢侈税起征点,超出的部分就将按1比1征税。也就是说每超出1美元,就要支付给联盟1美元。比如说起征点是6000万美元,而球队的工资总额是7000万美元,那么球队在工资上将要花费8000万美元。 球队老板为了在新赛季中进行球员交易,因此需要得知球原创 2016-06-10 11:45:58 · 937 阅读 · 3 评论 -
noip模拟题 慰问员工 cheer
【题目描述】 LongDD 变得非常懒, 他不想再继续维护供员工之间供通行的道路. 道路被用来连 接 N(5 员工的家. LongDD 计划除去 P(N-1 是还要保持房子之间的连通性. 你首先要决定那些道路是需要保留的 N-1 条道路. 第 j 条双向道路连接了房子 S_j 和 E_j (1 而且走完它需要 L_j (0 路所连接. 员工们非常伤心, 因为她们的交通系统被原创 2016-06-08 15:29:22 · 312 阅读 · 0 评论 -
noip2012提高组模拟题樱桃庄园
本题是一个动态规划背包问题。 题目如下: 【问题描述】 高考结束啦!结束啦!高考结束第一天,大黑带着她的宠物——麻婆来到一个樱桃园,他们要来摘樱桃吃啦。 这时大黑对他的宠物麻婆说:“你想不想吃樱桃啊?” 麻婆兴奋地说:“好啊!” 大黑说:“好吧,你去摘吧,我掏钱!但是我只给你一定的时间,你必须在规定的时间内回到我面前,否则你摘的樱桃都要归我吃!” 麻婆思考了一会儿,最终答应了原创 2016-06-07 16:07:18 · 933 阅读 · 0 评论 -
NOIP模拟题(图论)两道
T1:树的直径 【题目描述】 ⼀一棵树的直径指的是树中距离最远的两点间的距离。给出一颗无根树,请你求出它的直径。 【输入】 输入的第1包含1个整数n,表示树中节点个数。 接下来的n-1,每行有3个整数u,v,w。表示存在一条从u到v,长度为w的边。 【输出】 输出一行,包含1个整数,即树的直径。 【输入输出样例】 INPUT:原创 2016-10-01 15:46:08 · 520 阅读 · 0 评论