- 博客(106)
- 资源 (10)
- 收藏
- 关注
原创 ural 1019. Line Painting 线段树 离散化
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1019题意:初始0~1e9都染成白色,[l,r]染成w/b, 是开区间。 样例: 4 1 999999997 b 40 300 w 300 634 w 43 47 b 输出 47 634 题解:类比上一篇博客,不同的是开区间 还是那组样例 2 0 3 b 4 9999999
2017-03-25 23:54:24 311
原创 zoj 2301 || hdu 1199 Color the Ball 线段树 离散化
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1301题意:[l,r],染成w/b, 初始全为b,问最长段的w题解:因为N小于2000,染色范围可以到2^31,所以要离散化http://blog.csdn.net/zxy_snow/article/details/6639878 其实这题的意思是 染色区间【闭区间】
2017-03-25 23:29:19 651
原创 poj 1195 Mobile phones 二维树状数组
题目链接:http://poj.org/problem?id=1195题意:S*S的矩阵,两种操作 1 x y a, 在点(x,y)上加a 2 lx ly rx ry, 求矩形lx题解:二维树状数组。代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;typedef long long
2017-03-24 21:18:28 279
原创 poj 2155 Matrix 二维树状数组
题目链接:http://poj.org/problem?id=2155题意:给出N*N的矩阵,初始为0。 给出矩阵左上角和右下角坐标,这个面积范围里的元素 1变0 ,0 变1,然后给出询问,问某个点是多少。题解:http://blog.csdn.net/zxy_snow/article/details/6264135 我们将1变0,0变1转变为将这一块面积翻转几次,奇数次就是1,偶数次就是0。
2017-03-24 21:11:55 249
原创 poj3067 Japan 树状数组 逆序数
题目链接:http://poj.org/problem?id=3067题意:日本有N个城市在东边,从北至南编号为1 2 3,,,N,M个城市在西边,从北至南编号为1 2 ,,,,M,K条高速公路将被建造高速公路的一端在西边,一端在东边输入有多组样例,每组样例第一行为n m k接下来有k行,分别为高速公路的端点求高速公路的交点有多少个,不包括以城市为相交点题解:对Ax,Ay和Bx,By两条高速公路,有
2017-03-24 20:56:46 303
原创 poj 2299 Ultra-QuickSort 树状数组求逆序数 离散化
题目链接:http://poj.org/problem?id=2299题意:求逆序数题解:树状数组可以求逆序数 但是数据50w,所以要离散化。 归并也可做:http://blog.csdn.net/zxy_snow/article/details/6257561 这位大牛不知道什么叫离散化 写出了离散化 Orz “就排下序,重新编数,这个据说叫离散化 = =”另外一种离散化方式吧 ( 其实就是
2017-03-24 20:50:17 358
原创 poj 2352 Stars 树状数组
题目链接:http://poj.org/problem?id=2352题意:给你一系列点(按y递增,x递增排列),level[X] 指的是 在当前点的左下方 包括自己 的点数为X 的这些点的个数。题解:树状数组 y递增,不管y,只要维护x就行了 读入一个点,找到比他小的点的个数,也就是他的等级,然后将这个等级的点的个数加一即可代码:#include <iostream>#include <cs
2017-03-24 20:28:05 233
原创 poj 2029 Get Many Persimmon Trees 二维树状数组
题目链接:http://poj.org/problem?id=2029题意:N个星,在W*H的网格中,下面给出N个星的位置,给出S,T,要找出S*T大小的矩形,使得星星最多题解:http://blog.csdn.net/zxy_snow/article/details/6260895 二维树状数组和一维差不多,维护的是两个方向x,y。一块面积?代码:#include <iostream>#inc
2017-03-24 19:59:30 299
原创 CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化
题目链接:http://codeforces.com/contest/19/problem/D题意:有三种操作“add x y”往平面上添加(x,y)这个点,”remove x y”,将平面上已经存在的点(x,y)删除,“find x y”找出平面上坐标严格大于(x,y)的点,如果有多个点找x最小的,再找y最小的。题解:所有点 x 坐标离散化,然后按照新的坐标建一个线段树。 对于每一个坐标x,维护
2017-03-24 19:39:49 220
原创 挑战练习题3.3 POJ 2886 Who Gets the Most Candies? 树状数组
题目链接:http://poj.org/problem?id=2886题意:抢糖:N个熊孩子围成一个圈,从第K个开始淘汰,每淘汰一个,出示手中的数字,决定下一个淘汰者,正数表示左手第n个,负数反之。每个人可以拿到的存活回数的因数个数的糖果,求拿到最多糖果数的孩子的名字以及糖果数。题解:http://www.hankcs.com/program/algorithm/poj-2886-who-gets-
2017-03-24 19:32:53 236
原创 hdu4288 Coder 离线线段树 单点更新 区间求和 离散化?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4288题意:维护一个有序数列{An},有三种操作: 1、添加一个元素。 2、删除一个元素。 3、求数列中下标%5 = 3的值的和。题解:http://blog.csdn.net/dgq8211/article/details/7999179 由于线段树中不支持添加、删除操作,所以题解写的是用离线做
2017-03-24 19:16:56 293
原创 zoj 1610 Count the Colors 线段树 区间更新
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=610题意:题解:线段树区间更新 注意更新子节点,如果遇到的父节点已经被颜色覆盖掉的话,父节点 的颜色需要往下传递(因为父节点已经不会是原来那种颜色了)。代码:#include <bits/stdc++.h>using namespace std;typedef lo
2017-03-24 19:02:57 253
原创 51nod 1307 绳子与重物 二分+dfs / 并查集
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1307题意:题解:方法一: 因为所有绳子最终组成了1棵树,所以我们可以通过一次DFS,来检测是否有某根绳子下面绑了超过他所能负荷的重量。 具体方法:对每个节点,计算其子树的重量和(包含自身的重量),如果大于能承受的最大重量,则绳子会断,否则不会断。 一次DFS
2017-03-22 20:48:30 402
原创 51nod 1116 K进制下的大数 暴力/数论
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1116题意:题解: 代码:暴力:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP m
2017-03-22 20:37:33 278
原创 Wannafly2016-12-27 SPOJ-INTSUB 数学
题目链接:http://www.spoj.com/problems/INTSUB/题意:给定一个集合,该集合由1,2,3….2n组成,n是一个整数。问该集合中有趣子集的数目,答案mod1e9+7。 x的子集合有趣定义为,该子集中至少有两个数,a和b,b是a的倍数且a是集合中最小的元素。题解:枚举子集中最小的元素,然后确定其他的元素。 假设现在最小元素为a,则有2n/a-1个大于a的元素是a的倍数
2017-03-18 17:32:26 211
原创 Wannafly2016-12-27 SPOJ-MINSUB - Largest Submatrix 二分+单调栈
题目链接:http://www.spoj.com/problems/MINSUB/题意:给定一个由非负数组成的矩阵M,和一个整数K,对于矩阵M的子矩阵M’,定义min(M’)为M’矩阵中元素的最小值。 我们需要找出这样一个子矩阵,该矩阵的面积至少为K,且min(M’)最大化。面积的定义为该矩阵的行数*列数。求出min(M’),并给出使得min(M’)为该值时面积的最大值。题解:这类问题都是可以二分
2017-03-18 17:27:34 283
原创 51nod 1158 全是1的最大子矩阵 单调栈
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1158题意:给出个的矩阵,里面的元素只有0或1,找出M1的一个子矩阵,M1中的元素只有1,并且的面积是最大的。输出的面积题解:单调栈,把每一列数看成一个数组。 代码:#include <bits/stdc++.h>using namespace std;t
2017-03-18 16:02:36 465
原创 poj2796 单调栈
题目链接:http://poj.org/problem?id=2796题意:给你一个序列,让你求出一段区间,(在这段区间之内的最小值*这段区间所有元素之和)的最大值……题解:http://www.cnblogs.com/ziyi–caolu/archive/2013/06/23/3151556.html代码:#include <iostream>#include <cstdio>#include
2017-03-18 13:46:19 351
原创 Wannafly 每日一题 2016-12-26 KAOS 字典树
题目链接:http://www.spoj.com/problems/KAOS/题意:给定n个字符串,统计字符串(s1, s2)的对数,使得s1的字典序比s2的字典序要大,s1反一反(abc->cba,记为s1’)比s2’的字典序要小。题解:按字符串的字典序排序,从小到大枚举,假设现在考虑到了字符串s1,那么我们已经处理过了所有字典序代码:#include <bits/stdc++.h>using
2017-03-17 21:24:55 228
原创 紫书动规 例题9-13 UVA - 1220 Party at Hali-Bula 树形dp
题目链接:https://vjudge.net/problem/UVA-1220题意:题解:树形dp: 树的最大独立集问题 d[u][0]:=不选u能得到的最大人数 d[u][0]=sum{max(d[v][0],d[v][1]} d[u][1]:=选u能得到的最大人数 d[u][1]=sum{d[v][0]} 判断唯一性就是看当前点的孩子是不是不唯一的。初始唯一代码:#includ
2017-03-17 00:00:30 284
原创 紫书动规 例题9-12 UVA - 12186 Another Crisis 树形dp
题目链接:https://vjudge.net/problem/UVA-12186题意:题解:d[u]:=让u给上级发信最少需要多少工人。假设u有k个节点,则至少c=(kT-1)/100+1个直接下属发信才行。 把所有子节点的d值从小到大排序,取前c个加起来就是当前的答案。代码:#include <bits/stdc++.h>using namespace std;typedef long lo
2017-03-16 22:32:54 347
原创 紫书动规 P282的问题 hdu2196 树形dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:题解:http://blog.csdn.net/shuangde800/article/details/9732825 f[i][0],表示顶点为i的子树的,距顶点i的最长距离 f[i][1],表示Tree(i的父节点)-Tree(i)的最长距离+i跟i的父节点距离要求所有的f[i][0]
2017-03-16 21:34:58 228
原创 紫书动规 例题9-10 UVA - 1626 Brackets sequence 区间dp
题目链接:https://vjudge.net/problem/UVA-1626题意:题解:dp[i][j]:= i~j需要最少的括号 区间dp: dp[i][j] = min(dp[i][j],dp[i][k]+dp[k+1][j]); (i<=k代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#de
2017-03-16 19:24:48 245
原创 紫书动规 例题9-9 UVA - 10003 Cutting Sticks 区间dp
题目链接:https://vjudge.net/problem/UVA-10003题意:题解:dp[i][j]:=切割小木棍i~j的最优费用,枚举中间切割点,这段的费用是该段的长度 d[i][j] = min(d[i][j],dp(i,k)+dp(k,j)+a[j]-a[i]);代码:#include <bits/stdc++.h>using namespace std;typedef lon
2017-03-16 18:14:54 199
原创 紫书动规 例题9-8 UVA - 1625 Color Length dp
题目链接:https://vjudge.net/problem/UVA-1625题意:题解:蒟蒻感觉非常难 dp[i][]j] := 第一个串拿i个,第二个串拿j个的最小值 维护一个w[i][j] blablabla 看紫书吧 http://www.cnblogs.com/candy99/p/5985217.html代码:#include <bits/stdc++.h>using nam
2017-03-15 22:57:04 219
原创 紫书动规 例题9-7 UVA - 11584 Partitioning by Palindromes dp
题目链接:https://vjudge.net/problem/UVA-11584题意:题解:dp[i]:=考虑到第i个字符,的最少划分 dp[i] = min{dp[j]+1} (0<=j代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a)
2017-03-15 16:14:26 283
原创 紫书动规 例题9-6 UVA - 11400 Lighting System Design dp
题目链接:https://vjudge.net/problem/UVA-11400题意:题解:按照电压从小到大排序,一种灯泡要么不换,要么全换; 否则依旧是两个电源,没省钱。 因为可能电压高的费用小,肯定全换,并且还可以剩下一个电源费用 还可能电压高的费用大,那也要全换,跑一跑,取最小值,因为可能电源费用省的更多那。dp[i]:=前i个的最小费用 dp[i] = min(dp[i],dp[j]
2017-03-15 15:56:49 285
原创 紫书动规 例题9-5 UVA - 12563 Jin Ge Jin Qu hao dp-01背包
题目链接:https://vjudge.net/problem/UVA-12563题意:题解:01背包 一直想二维,但是对于第i首,能不能唱只和时间有关,和前i-1首最多唱了多少没有关系,不能从dp[i-1]转移唱完了一首歌,以这首歌的结束时间判断是否到了下一首该唱的时间dp[j]:=以j为结束时间,最多唱了多少首,注意j一定要倒着枚举,否则就被当前这首歌覆盖了,就是这首歌唱了好几遍【完全背包】代
2017-03-15 14:46:01 315
原创 紫书动规 例题9-4 UVA - 116 Unidirectional TSP 多段图的最短路 dp
题目链接:https://vjudge.net/problem/UVA-116题意:题解:dp[i][j]:= 从(i,j)出发到最后一列的最小开销 因为字典序最小,所以每次往前一列转移,都要先从这列 行数最小的位置转移 dp[i][j] = min(dp[i][j],dp[row[k]][j+1]+a[i][j]); 边界是dp[i][m-1] = a[i][m-1]代码:#include
2017-03-15 13:12:40 476
原创 紫书动规 例题9-3 UVA - 1347 Tour dp
题目链接:https://vjudge.net/problem/UVA-1347题意:题解:改成两个人同时从最左点出发,沿着两条不同的路径走,最后都走到最右点,且除了起点和终点以外其余每个点恰好被一个人经过。 dp[i][j]:=第一个人走到i,第二个人走到j,且1~max(i,j)全部走过,还需要走多长的距离; 因为dp[i][j]=dp[j][i],所以规定i>j; 对于每个人,只允许走到
2017-03-15 11:46:47 276
原创 紫书动规 例题9-2 UVA - 437 The Tower of Babylon dp
题目链接:https://vjudge.net/problem/UVA-437题意:题解:dp[i][j]:=考虑到前i个立方体并且第i个立方体以标号为j为高的最大值代码:#include <bits/stdc++.h>using namespace std;const int maxn = 30+5;int N,blocks[maxn][3],d[maxn][3];void get_dimen
2017-03-15 11:20:47 232
原创 紫书动规 例题9-1 UVA - 1025 A Spy in the Metro dp
题目链接:https://vjudge.net/problem/UVA-1025题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst
2017-03-14 23:20:22 218
原创 紫书搜索 习题7-10 UVA - 11214 Guarding the Chessboard 迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-11214题意:给出m*n棋盘上的目标点,求最少用几个皇后可以守卫所有目标点。 题解:类似八皇后做法,2维数组标记行、列、主对角线、副对角线。 代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a
2017-03-14 17:28:23 352
原创 紫书搜索 习题7-8 UVA - 12107 Digit Puzzle IDA*迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-12107题意:给出一个数字谜,要求修改尽量少的数,使修改后的数字谜只有唯一解。空格和数字可以随意替换,但不能增删,数字谜中所有涉及的数必须是没有前导零的正数。输入数字谜一定形如a*b=c,其中a、b、c分别最多有2、2、4位。题解:http://www.cnblogs.com/tyty-Somnuspoppy/p/636672
2017-03-14 16:59:20 875
原创 紫书搜索 习题7-7 UVA - 12558 Egyptian Fractions (HARD version) IDA*迭代加深搜索
题目链接:https://vjudge.net/problem/UVA-12558题意:题解:输出要用lld IDA*迭代加深搜索 紫书例题改一改代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_p
2017-03-14 15:25:17 272
原创 紫书搜索 习题7-6 UVA - 12113 Overlapping Squares 暴力
题目链接:https://vjudge.net/problem/UVA-12113题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst
2017-03-14 12:18:28 306
原创 紫书搜索 习题7-4 UVA - 818 Cutting Chains 暴力+dfs判环+位运算
题目链接:https://vjudge.net/problem/UVA-818题意:选几个圆环去open。然后该圆环和其他就断开了。然后用这些open的圆环去连接剩下的圆环【最后打开的会合上】,看能不能连成一串。。求最少的open个数。题解:n为15.利用位运算去枚举哪几个圆环要open。然后判断剩下圆环有没有与超过2个圆环的连接或者形成环,如果没有,在判断剩下的链个数有没有超过open个数-1.如
2017-03-14 10:41:06 252
原创 紫书搜索 习题7-3 UVA - 211 The Domino Effect 搜索dfs
题目链接:https://vjudge.net/problem/UVA-211题意:给一副图,代表多米诺骨牌摆放方式,每两个连成一块牌,如0 0 对应1号排 0 1 对应2号排,问图可以代表几种摆放方式。题解:dfs,每个位置的牌不是竖就是横,枚举2个方向,最多枚举28块,O(2^28),加个剪枝,如果进入枚举下一行了,当前行还有没填上的,就直接回溯。代码:#include <bits/stdc++
2017-03-13 23:04:38 279
原创 紫书搜索 习题7-2 UVA - 225 Golygons 搜索dfs
题目链接:https://vjudge.net/problem/UVA-225题意:题解:枚举每一步的方向 没有想到字典序可以从一开始找方向就处理掉。 还有多一条剪枝,就是当前位置太远剩余的所有步数都不够回道原点代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,
2017-03-13 21:25:50 241
原创 紫书搜索 习题7-1 UVA - 208 Firetruck 搜索dfs
题目链接:https://vjudge.net/problem/UVA-208题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst i
2017-03-13 20:06:36 242
GaaihoReader_CHS_ALL_4.20.tar
2020-02-11
操作系统实验八 文件管理
2018-06-13
操作系统实验七 磁盘调度
2018-06-13
操作系统实验六 页面置换算法
2018-06-13
操作系统实验五 内存管理
2018-06-13
操作系统实验四 设备管理
2018-06-13
操作系统实验三 作业调度
2018-06-13
操作系统实验二 银行家算法
2018-06-13
操作系统实验一: 进程调度
2018-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人