#2254. 「SNOI2017」一个简单的询问 题目描述 给你一个长度为 NNN 的序列 aia_ia​i​​,1≤i≤N1\leq i\leq N1≤i≤N,和 qqq 组询问,每组询问读入 l1,r1,l2,r2l_1,r_1,l_2,r_2l​1​​,r​1​​,l​2​​,r​2​​,需输出 ∑x=0∞get(l1,r1,x)⋅get(l2,r2,x) \sum\limits_{x=0}^\infty \text{get}(l_1,r_1,x)\cdot \text{get}(l_2,…
「SNOI2017」一个简单的询问 简单的解法 显然可以差分一下. \[get(l,r,x)\times get(l1,r1,x)=get(1,r,x) \times get(1,r1,x)-get(1,l-1,x) \times get(1,r1,x)-get(1,r,x) \times get(1,l1-1,x)+get(1,l-1,x) \times get(1,l1-1,x) \] 因为都是1为起始,那么记两个cnt数组,表示前缀,然后可以分成四个区间,莫队. #include <bit…
ref #include <algorithm> #include <iostream> #include <cstdio> #include <cmath> using namespace std; typedef long long ll; int ua, ub, uc, ud, n, m, a[50005], chu[50005], blc, bel[50005], cnt; ll ans[50005], tmp; struct Node{ int u…
loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 建新图要判重. 内存永远算不对 代码 #include <bits/stdc++.h> #define ll long long using namespace std; const int N=1e6+7,mod=1e9+7; ll read() { ll x=0,f=1;char s=getc…
#2255. 「SNOI2017」炸弹 题目描述 在一条直线上有 NNN 个炸弹,每个炸弹的坐标是 XiX_iX​i​​,爆炸半径是 RiR_iR​i​​,当一个炸弹爆炸时,如果另一个炸弹所在位置 XjX_jX​j​​ 满足: Xi−Ri≤Xj≤Xi+Ri X_i-R_i\leq X_j \leq X_i+R_iX​i​​−R​i​​≤X​j​​≤X​i​​+R​i​​ 那么,该炸弹也会被引爆. 现在,请你帮忙计算一下,先把第 iii 个炸弹引爆,将引爆多少个炸弹呢? 输入格式 第一行,一个数字…
https://loj.ac/problem/2256 题目描述 正在上大学的小皮球热爱英雄联盟这款游戏,而且打的很菜,被网友们戏称为「小学生」.现在,小皮球终于受不了网友们的嘲讽,决定变强了,他变强的方法就是:买皮肤!小皮球只会玩 NNN 个英雄,因此,他也只准备给这 NNN 个英雄买皮肤,并且决定,以后只玩有皮肤的英雄.这 NNN 个英雄中,第 iii 个英雄有 KiK_iK​i​​ 款皮肤,价格是每款 CiC_iC​i​​ Q币(同一个英雄的皮肤价格相同).为了让自己看起来高大上一些,小皮…
题目 我就是个丝薄 如果要用\(dp_i\)表示凑出\(i\)的最小花费显然不可能的 之后大力猜想能凑出来的状态不会很多,我的暴力也告诉我不是很多,好像也确实不多的样子,大概\(4e4\)左右 但是我就这样思维僵化了,背包套路难道不是看到某一维特别大就把交换一下这一维和\(dp\)值吗 于是\(dp_i\)表示使用\(i\)的费用凑出的最大的数 分组背包大力转移即可 代码 #include<algorithm> #include<iostream> #include<cstr…
Loj #3057. 「HNOI2019」校园旅行 某学校的每个建筑都有一个独特的编号.一天你在校园里无聊,决定在校园内随意地漫步. 你已经在校园里呆过一段时间,对校园内每个建筑的编号非常熟悉,于是你情不自禁的把周围每个建筑的编号都记了下来--但其实你没有真的记下来,而是把每个建筑的编号除以 \(2\) 取余数得到 \(0\) 或 \(1\),作为该建筑的标记,多个建筑物的标记连在一起形成一个 \(01\) 串. 你对这个串很感兴趣,尤其是对于这个串是回文串的情况,于是你决定研究这个问题. 学校…
LOJ#2230. 「BJOI2014」大融合 题目描述 小强要在$N$个孤立的星球上建立起一套通信系统.这套通信系统就是连接$N$个点的一个树.这个树的边是一条一条添加上去的. 在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量. 例如,在上图中,现在一共有五条边.其中,$(3,8)$这条边的负载是$6$,因为有六条简单路径$2-3-8,\ 2-3-8-7,\ 3-8,\ 3-8-7,\ 4-3-8,\ 4-3-8-7$路过了$(3,8)$. 现在,你的任务就是随着边…
Loj #2719. 「NOI2018」冒泡排序 题目描述 最近,小 S 对冒泡排序产生了浓厚的兴趣.为了问题简单,小 S 只研究对 *\(1\) 到 \(n\) 的排列*的冒泡排序. 下面是对冒泡排序的算法描述. 输入:一个长度为 n 的排列 p[1...n] 输出:p 排序后的结果. for i = 1 to n do ​ for j = 1 to n - 1 do ​ if(p[j] > p[j + 1]) ​ 交换 p[j] 与 p[j + 1] 的值 冒泡排序的交换次数被定义为交换过程…