摘要:
一个原来写的题。 既然最后是nim游戏,且玩家是先手,则希望第二回合结束后是一个异或和不为0的局面,这样才能必胜。 所以思考一下我们要在第一回合留下线性基 然后就是求线性基,因为要取走的最少,所以排一下序,从大到小求。 1 #include<iostream> 2 #include<cstdio> 阅读全文
摘要:
一个原来写的题。 既然最后是nim游戏,且玩家是先手,则希望第二回合结束后是一个异或和不为0的局面,这样才能必胜。 所以思考一下我们要在第一回合留下线性基 然后就是求线性基,因为要取走的最少,所以排一下序,从大到小求。 1 #include<iostream> 2 #include<cstdio> 阅读全文
摘要:
学了新的忘了旧的,还活着干什么 题意:一些盒子,每步可选择打开盒子和取出已打开盒子的任意多石子,问先手是否必胜 搬运po姐的题解: 先手必胜的状态为:给出的数字集合存在一个异或和为零的非空子集,则先手必胜 证明: 首先我们有状态A:当前的所有打开的箱子中的石子数异或和为零,且所有关闭的箱子中的石子数 阅读全文
摘要:
深深的感受到了自己的水 T1: 题意:一棵树,有k个关键点,求分成连通块,每块至少一个关键点,使连通块最大最小。 woc我为啥没想到二分,不懂啊,考试的时候是在梦游吗 二分后判断是否可行 就是一个简单的树上的贪心 可以先bfs一遍倒着来,max表示改点最多能连几个点,sum表示实际有几个点 当改点是 阅读全文
摘要:
BZOJ3450 概率期望DP f[i]表示到i的期望得分,g[i]表示到i的期望长度。 分三种情况转移: ① s[i]=‘x’:f[i]=f[i-1],g[i]=0 ② s[i]=‘o’:f[i]=f[i-1]+2*g[i-1]+1,g[i]=g[i-1]+1 ③ s[i]=‘?’:f[i]=f[ 阅读全文
摘要:
【考完试不想说话系列】 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧张起来!!! 好了不扯淡了。。。 T1: 题意太长QAQ 大概就是一个数列代表价值,资瓷修改,给定一 阅读全文
摘要:
简直弱到不行了。。。 VW做法: 其实蛮简单的,然而想的时候忽略了指数是不增的 然后你以为做完了吗? 愚蠢的贡献了两个WA 这样搜索出的数灰常的大,连double都不能记录。。。 于是要利用对数: 3. 这道题取对数就是利用前两个性质。。。 还有就是stl的log是灰常慢的,所以可以用一个数组提前保 阅读全文
摘要:
看到异或就去想前缀和(⊙o⊙) 这个就是正反做一遍最大异或和更新答案 最大异或就是很经典的可持久化Trie,从高到低贪心 WA: val&(1<<(base-1))得到的并不直接是1/0 1 #include<bits/stdc++.h> 2 #define ll long long 3 #defi 阅读全文
摘要:
没什么好说的。 可持久化线段树,叶子节点存放父亲信息,注意可以规定编号小的为父亲。 Q:不是很清楚空间开多大,每次询问父亲操作后修改的节点个数是不确定的。。 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define N 20005 4 us 阅读全文
摘要:
看到题目就可以想到hash 然后很自然的联想到可持久化权值线段树 WA:base取了偶数 这道题还可以用莫队做,比线段树快一些 可持久化线段树: 1 #include<bits/stdc++.h> 2 #define ll long long 3 #define uint unsigned int 阅读全文
摘要:
2016-06-01 21:36:44 题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3527 我就是一个大傻叉 微笑脸 1 #include<bits/stdc++.h> 2 #define inf 1000000000 3 #define 阅读全文
摘要:
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3160 我是一个傻叉 微笑脸 1 #include<bits/stdc++.h> 2 #define inf 1000000000 3 #define ll long long 4 #define 阅读全文
摘要:
#include #define ll long long #define N 600005 using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&chi)swap(a[i],a[... 阅读全文
摘要:
2016-06-01 09:34:54 很久很久很久以前写的了。。。 今天又比较了一下效率,貌似手写复数要快很多。 贴一下模板: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #in 阅读全文
|