摘要:
(本文语言不通,细节省略较多,不适合初学者学习) 解决一类简单的sat问题。 每个变量有0/1两种取值,m个限制条件都可以转化成形如:若x为0/1则y为0/1等等(x可以等于y) 具体: 每个变量拆成i,i+n两个点,表示取0和取1 对于x为0,y为1的情况,从x向y+n连接一条边, 发现有逆命题: 阅读全文
摘要:
普通nim游戏: n堆石子,每个人每次对着一堆拿若干个。不能拿者判输。 只有两种情况,先手必胜,先手必败。 先手必胜当且仅当:a1^a2^...^an!=0 证明: 设=x(x不为0),选择最高位和x一样的ai,显然有ai^x<ai 阶梯型nim游戏 阶梯型nim游戏:高度单调的阶梯。每次只能把a[ 阅读全文
摘要:
[POI2015]ODW 喵锟讲过。分块。 N>=blo,那就暴力倍增往上跳。O(N/blo*logN) N<blo,预处理,f[i][j]表示,i往上跳,每次跳j步,到根节点为止,权值和。O(N*blo)(预处理复杂度) 平衡一下:N/blo*logN=N*blo blo=sqrt(NlogN) 阅读全文
摘要:
爆栈指递归中,存储的信息量大于系统栈的内存。 信息量包括元素编号,每一层中开的变量。 和递归的层数正相关。 (虽然noip一般开栈) 1.手写栈 while(top){ int x=sta[top]; for(each son) if(has son){ //blablabla sta[++top] 阅读全文
摘要:
[POI2008]TRO-Triangles https://www.cnblogs.com/GXZlegend/p/7509699.html 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 计算几何。 只需要用到S=|x1y2-x2y1|/2 开始对所有点按照x排序。 阅读全文
摘要:
状态优化 bzoj2064 分裂 存在通解:把原始集合都合并,再一一拆开。 如果可以划分一些集合,使得原始集合和目标集合对应的小集合相等,那么可以节省操作次数。 ans=(n1-1)+(n2-1)-2*(x-1) x为划分的相同集合数。 n<=10,状压 另外,其实原始集合一个x,就是往右x步,目标 阅读全文
摘要:
[POI2005]BANK-Cash Dispenser 有多少个4位字符串是所有操作序列的子串。 10^4枚举字符串。暴力判断会TLE 发现,我们就是在每个操作序列中不断找第一个出现的c字符。 预处理每个位置p的下一个c字符在哪里。nxt[N][10000][10] 然后O(N*4)判断。 [PO 阅读全文
该文被密码保护。 阅读全文