HDU 4383 To The Moon 解题报告】的更多相关文章

HDU 4383 To The Moon 题意翻译 已知一个长为\(n\)的序列\(a\),你需要进行下面的四种操作. C l r d 将区间\([l,r]\)中的数加上\(d\),同时时间加\(1\) Q l r 查询当前时间区间\([l,r]\)中所有数的和 H l r t 查询时间为\(t\)时区间\([l,r]\)中所有数的和 B t 将当前时间置为\(t\) 输入输出格式 输入格式 多组数据 每组数据第一行两个整数\(n,m\) 第二行\(n\)个整数,代表时间为\(0\)时的数列 后…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 题目意思:有 n 个气球从左到右排成一排,编号依次为1,2,3,...,n.给出 n 对 a, b,表示编号为 a ~b 的气球被涂过一次色.n 次之后,问所有气球被上色的次数分别是多少. 典型的树状数组题!这种是:每次修改一个区间,问的是最后每个点被修改的次数.要注意update() 函数对 a 处理 的时候,向上修改的过程中把不必要的区间都加了一遍.例如对a = 2时,update修改了c…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题目意思:给出一堆老鼠,假设有 n 只(输入n条信息后Ctrl+Z).每只老鼠有对应的weight 和 speed.现在需要从这 n 只老鼠的序列中,找出最长的一条序列,满足老鼠的weight严格递增,speed严格递减. 我们可以用一个结构体来保存老鼠的信息,包括weight, speed 以及 id(这个 id 是未排序之前的,为了输出最后信息).那么首先对 weight 进行递增排序,如…
题目链接:http://code.hdu.edu.cn/showproblem.php?pid=1879 这条题目我的做法与解决Constructing Roads的解法是相同的. 0 表示没有连通:1代表已连通.在已连通村庄的道路的基础上,找到扩展出来的最小生成树. #include <iostream> #include <algorithm> using namespace std; + ; int rep[maxe], vis[maxe]; struct sets { in…
题目链接:http://code.hdu.edu.cn/showproblem.php?pid=1233 并查集的运用, 实质就是求最小生成树.先对所有的村庄距离从小到大排序,然后判断村庄之间是否属于同一集合,不是则将距离相加.属于同一集合,说明村庄连成了环,就不符合树的定义了.这样扫描下来,就求得最小生成树了. 要特别注意的是,数组越界问题.这个得益于Dwylkz的指点.由于村庄最多假设为100,为了防止边数越界,数组应该开到100 * 100 (10000)左右. #include <ios…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 有关系(直接或间接均可)的人就坐在一张桌子,我们要统计的是最少需要的桌子数. 并查集的入门题,什么优化都无用到就可以直接过.实质上就是统计总共有多少个不相交的集合.比较可恶的是,题目中 There will be a blank line between two cases 是骗人的!!! #include <iostream> using namespace std; + ; int p[…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272 第二条并查集,和畅通工程的解法类似.判断小希的迷宫不符合条件,即有回路.我的做法是,在合并两个集合的时候,当fx = fy,即有共同祖先的时候,说明就有回路. 这题有三点要注意:1.格式问题.题目说的“每两组数据之间有一个空行.”是会PE的!!实际上输出Yes或No之后加多个\n即可,不需要再画蛇添足再输多一个换行.  2. 当整数对列表只有0 0 时,要输出Yes   3.当不相交的集合个数…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 又是一道栈的练习,这次也是没有用到STL中的栈来实现.用来保存操作过程的数组(process[])一定要开得足够大(一开始开小了导致wa) #include <iostream> #include <string.h> #include <stdio.h> using namespace std; ; int main() { char o1[maxn], o2[ma…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 题目意思:给出 N 个数你,通过对某些数进行更改(或者 + 或者 -),当输入的是 Query 的时候,需要计算出 某个区间的和. 树状数组第一题,算是模板吧 ^_^ 这个人写得比较容易理解:http://blog.csdn.net/shahdza/article/details/6314818 权威版:http://community.topcoder.com/tc?module=Stati…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548 题目意思:给出 n 个 floor 你,每个floor 有一个数k,按下它可以到达 floor + k 或者 floor - k的位置.问从floor A 到 floor  B 最少的按lift 次数是多少. hdu 真是!!!!! queue<node>  q 写在main 外就 wa了!!! = = 汗!!! 还专门瞪大双眼对照别人AC的代码,看了一遍又一遍,以为色盲了= =,可恶HDU…