http://www.lydsy.com/JudgeOnline/problem.php?id=3076 https://www.luogu.org/problemnew/show/P3081#sub 有N(1 <= N <= 100,000)座小山,每座山所占的区域用直线(x1, y1) 到 (x2, y2)来表示(x1 < x2 并且 y1 < y2).也就是说这些山用笛卡尔坐标系里的线段来表示,这些用于表示小山的线段都没有任何交点,第一座山的一端位于(x1, y1) = (0…
[洛谷P3369][模板]普通平衡树题解 题目链接 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(排名定义为比当前数小的数的个数+1.若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且最大的数)6. 求x的后继(后继定义为大于x,且最小的数) 输入格式: 第一行为n,表示操作的个数.下面n行每行有两个整数opt和x,opt表示操作…
洛谷 P1992 不想兜圈的老爷爷 题解 题目描述 一位年过古稀的老爷爷在乡间行走 而他不想兜圈子 因为那会使他昏沉 偶然路过小A发扬助人为乐优良传统 带上地图 想知道路况是否一定使他清醒 usqwedf补充:为了让欢乐赛充满欢乐 小A还想问你一些数学作业-- 输入输出格式 输入格式: 一行 n m k 表示乡间共有 n 个村庄 m 条道路 接下来 m 行 每行两个整数 x y 表示 村 x -> 村 y 单向连通 输出格式: 第一行 输出 Yes/No [清醒/不清醒] 第二行 若为 Yes…
https://www.lydsy.com/JudgeOnline/problem.php?id=5285 https://www.luogu.org/problemnew/show/P4424 http://uoj.ac/problem/384 洛谷的题解已经很把思想过程完备地表达出来了:https://kelin.blog.luogu.org/solution-p4424 感觉比官方题解说的还清楚. 那么问题就是我们到底应该如何实现这个算法呢? 一个直观的想法是把每一位的数全部处理出来,然后…
洛谷p3384 [模板]树链剖分错误记录 首先感谢\(lfd\)在课上调了出来\(Orz\) \(1\).以后少写全局变量 \(2\).线段树递归的时候最好把左右区间一起传 \(3\).写\(dfs\)的时候不要写错名字 \(4\).使用线段树的操作的时候才要用到\(dfs\)序 \(5\).需要开一个数组来记录在\(dfs\)序下的节点是什么也方便线段树的赋值 \(6\).注意\(down\)函数内怎样更新 \(7\).在查询的时候并不需要向上更新 由于\(yxj\)看了\(lfd\)敲的树链…
P1789 [Mc生存]插火把 题目背景 初一党应该都知道...... 题目描述 话说有一天 linyorson 在"我的世界"开了一个 \(n\times n(n\le 100)\) 的方阵,现在他有 \(m\) 个火把和 \(k\) 个萤石,分别放在 \((x_1,y_1)...(x_m,y_m)\) 和 \((o_1,p_1)...(o_k,p_k)\) 的位置,没有光或没放东西的地方会生成怪物.请问在这个方阵中有几个点会生成怪物? P.S.火把的照亮范围是: |暗|暗| 光 |…
https://www.luogu.org/problemnew/show/P1066(题目传送) (题解)https://www.luogu.org/problemnew/solution/P1066: 首先普及一下知识:一个2^k进制n位数转换成2进制数时最多有n*k位:一个n进制数的每位数字属于集合{0,1,……,n-1}. 这样我们就知道给出w.k后r的位数最多为wei=w/k向上取整,但要注意,如果w%k有余,则r在最高位上不能把集合{0,1,……,n-1}的数都取一遍. 又知道r的位…
题目 这个题好坑啊,首先是他会卡空间,然后我们就只能把一种比较好理解的状态给舍弃,因为空间开不下,然而采用一种难理解的状态就是\(dp[i][j][l][0/1]\)表示\(i\),\(j\)位置,两者的差为\(l\),当前由谁来吸收的方案数. 然后我们就可以推出状态转移方程,此状态转移方程很好写,主要就是状态非常难想,因此我们如果状态转移方程想不出来的话,就需要考虑换个状态.并且我们因为需要保证数组下标为正,所以差值为正的时候,因为我们需要\(mod~k\)因此就可以根据负数取模的性质,加上k…
题目传送门 这道题暴力就能解决. #include<bits/stdc++.h> using namespace std; int xi; ,ans[]; int main() { int n; cin>>n; ;j<n;j++) { ;i<=;i++) { day++; ) { xi=day%; )ans[]++; else ans[xi]++; } } +j)%==&&(+j)%!=) { ;i<=;i++) { day++; ) { xi=d…
题目传送门 说是加强版,其实可以把棋盘那道题的代码粘过来(注意要开long long): #include<bits/stdc++.h> using namespace std; ,c; int main(){ cin>>n>>m; ;i<(n>m?m:n);++i) z+=(n-i)*(m-i); c=(+n)*(+m)*n*m/-z; cout<<z<<" "<<c<<endl; ; }…