↓ Skip to main content
  1. Categories/

ACM

2017

BZOJ 1854: [Scoi2010]游戏 (并查集)

·917 words·2 mins
Description # lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。 现在lxhgww想知道他最多能连续攻击boss多少次?

vimrc for ACM-ICPC (赛场用)

·180 words·1 min
弄了点比较短的,赛场上用的配置文件orz 代码实现 1map <F5> :call Co()<CR> 2func! Co() 3 exec "w" 4 exec "!g++ % -std=gnu++11 -Wall -o %<" 5 exec "! ./%<" 6 7endfunc 8syntax on 9set nu 10 11autocmd BufNewFile *.cpp exec ":call SetTitle()" 12func SetTitle() 13 let l = 0 14 let l = l + 1 | call setline(l,'#include <bits/stdc++.h>') 15 let l = l + 1 | call setline(l,'using namespace std;') 16 let l = l + 1 | call setline(l,'const int inf = 0x3f3f3f3f;') 17 let l = l + 1 | call setline(l,'#define ms(a,x) memset(a,x,sizeof(a))') 18 let l = l + 1 | call setline(l,'typedef long long LL;') 19 let l = l + 1 | call setline(l,'int main()') 20 let l = l + 1 | call setline(l,'{') 21 let l = l + 1 | call setline(l,' return 0;') 22 let l = l + 1 | call setline(l,'}') 23endfunc 故地重游,rp++

广义Fibonacci数列找循环节 (二次剩余)

·2359 words·5 mins
问题: 给定初始项 \( F_0, F_1 \),满足递推关系 \( F_n = a F_{n-1} + b F_{n-2} \),求 \( F_n \pmod p \) 的循环节长度。 原理见广义Fibonacci数列找循环节 这里只说做法 我们先写出递推式的特征式子 x^2 =ax + b,整理得到 x^2-ax-b=0,求出 delta = a^2+4b

可持久化线段树学习笔记

·1032 words·3 mins
起因是16长春CCPC遇到了一个全场万人过的主席树题目,然而我不会orz,哭哭 可持久化线段树的本质是很多棵形态完全相同的线段树。 也可以理解成是,保存了不同时刻版本的线段树的数据结构。

poj 3301 Texas Trip (三分,模板题)

·799 words·2 mins
题目链接 题意: # 给定二维平面的n个点,要求一个面积最小的正方形,使其能覆盖所有的点。 思路: # 先考虑如果水平竖直地放置正方形(边和坐标轴平行)圈住所有点的最小正方形的边长是:

2016-2017 ACM-ICPC, NEERC, Northern Subregional Contest G Gangsters in Central City (LCA)

·1322 words·3 mins
题意: 有一棵树,水源在根节点1,房子在叶子节点。有若干操作,操作可能是歹徒占领或者离开一个房子。我们不想给歹徒供水,可以通过切断边实现(如果某个叶子节点到根节点的路径上有一条边被切掉,那么就不能供水了。)对于每次操作后,问不给所有歹徒供水最少要切多少条边,并且问在切满足前面最小的情况下,最少使得多少个良民受影响。初始没有歹徒。

uvalive 7675 | 2016 北京 regional onsite H - A New Ground Heating Device (二分+多个圆面积并)

·1261 words·3 mins
题目链接 题意: # 在一个二维平面上,有n个加热设备,每个加热设备加热一个圆形,加热设备需要信号源才可以工作,信号源在原点上,但是高度不确定。假设设备的加热半径是一个与{信号源与设备的距离}有关的表达式。现在想要满足,至少有k个加热设备加热的面积大于s,问信号源的最高高度是多少。

BZOJ 3262: 陌上花开 (cdq分治模板题,三维偏序)

·870 words·2 mins
Description # 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),又三个整数表示。现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。