卡常数大法
文章平均质量分 50
ZMOIYNLP
嗨嗨嗨嗨
展开
-
【codevs2343】简单题【位运算】【卡常大法好】
这道题的题意十分浅显易懂。有一串很长很长不知道有多长(最长十万)的01序列,一开始全是0.要你维护两种操作:将一个区间内的数翻转(就是1变0,0变1,就是异或1)、询问某一位是0还是1.树状数组的裸题啊。但是我使用了传说中的卡常数大法~~~直接暴力修改,但是把64个01位压进了一个unsigned long long。这样修改是O(n)的,但是常数奇小- -不过位运算坑原创 2015-02-28 10:38:17 · 773 阅读 · 0 评论 -
【spoj375】Query on a tree【树链剖分】【或者动态树,那样常数就完了T_T】
hahahaha!今天(3月12)我终于ac了……orz Yan Big God!他问我能不能$O(n)$ 建树……并且提供了一个“反映射“的思想。我想我们连反映射都可以不要……鉴于ZKW的特殊性……我们只要原创 2015-03-11 20:02:49 · 766 阅读 · 0 评论 -
【bzoj2284】【SDOI2011】贪吃蛇【搜索】【位运算】【卡常大法好】
这道题真是太精妙了…… 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2284 首先这题棋盘的范围是15不是12。 本来原题是有special Judge的,因为要输出方案…… 但是这是oj嘛。。就输出最短时间好了- - 我一开始愚蠢的想法是xy各用一个char存,蛇长最多为8,就开个结构体数组,再开一个长度为4的记录事物的位置……原创 2015-03-09 16:29:56 · 1853 阅读 · 0 评论 -
【codvs3304 3305 3306】水果姐逛水果街系列【线段树】【树链剖分】
这三道题一个类型的…… 第一道题是有一排商店,可以买水果也可以卖水果,买水果和卖水果的价钱一样。 问你从商店x走到商店y,买卖所得最大收益是多少。 我们可以发现朴素的办法是一路扫过去,记录当前最小值,然后更新收益。 这样应该会T(我没试过) 这样丢失了很多信息。 我们考虑一下能不能存起来。 发现解满足区间加法。 即【L,R】中最大的收益要么是【L,K】中的收益,要么是【K,R】中的收原创 2015-03-11 23:01:45 · 717 阅读 · 0 评论 -
【bzoj1036】树的统计Count【树链剖分】【ZKW大法好】【卡常大法好】
关于这个树上路径端点会重合的问题,我们只要不判断x==y就行了。详见被注释呵呵的地方。#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=30001;typedef int arr[maxn];typedef int arr1[maxn<<1];arr fa,top,原创 2015-03-12 11:43:27 · 841 阅读 · 0 评论 -
【bzoj4028】【HEOI2015】公约数数列【分块暴力】
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=4028 这题十分神奇…… 一开始我考虑线段树,后来又考虑分块。。 但是我死在了这么一个问题上: 知道每一块的GCD和XOR,那怎么查询? 相当于gcd(之前的GCD,这一块某处的前缀GCD)*(之前的XOR^这一块某处的XOR)=x。。。 然后我就爆炸了- - 据zzh和tdl等大神原创 2015-04-30 08:02:10 · 3030 阅读 · 7 评论 -
【bzoj1858】【Scoi2010】序列操作【位运算】【卡常大法好】
其实这道题用线段树神马的应该是可做的…… 但是鉴于我跪烂的位运算水平…… 我决定用位运算压常数水过去~~ (其实要是数据强的话我早就完了) 我一次又一次犯的,b错误耗费了我一下午的时间…… 这就是蒟蒻啊- - 一开始不知怎么回事,命令总是读不进去- - 然后发现~0U<<(r+1)有的时候不总是好用。 printf("%u\n",~0U<<32); int r=32;原创 2015-03-10 21:08:26 · 703 阅读 · 0 评论