STOI补番队胡策

#1

第一轮是我出的。

比赛情况:

#1 NanoApe 300 (完美AK)

#2 && #3 swm_sxt / ccz  200

A.candy

这道题就是个nim游戏, 我们知道当且仅当选出的各堆糖果的异或和为0时,先手必败.

这样问题转化为从N个数中选1一些数使得他们的异或和为0的方案数.

30%,O(2^N) DFS.

假如只有询问, 那么可以直接用类似01背包的dp解决.

for i = 1 ~ 1024

  dp(i, x) += dp(i-1, x^w_i);

dp(i, x)表示考虑了前i个糖果, 异或和为x的方案数. 时间复杂度O(1024*N)

加入操作, 直接再来1次O(1024)的dp即可.

删除操作, 暴力做的话会TLE, 但是只能暴力.

暴力做就可以拿60%.

注意到加入操作不超过10, 我们可以时光倒流, 这样加入操作变成了删除操作, 删除操作变成了假如操作, 删除时暴力重新dp就不会TLE了。

B.233

暴力, 期望得分0~60, 给出了详细的数据范围,就是想看你们的乱搞能力.

100%,莫队算法.

首先, 拆去绝对值, 用数据结构(树状数组/线段树/平衡树/暴力)维护, 那么我们可以O(log N)的时间来从[L, R]的答案算出[L-1, R]或者[L+1, R]或者[L, R-1]或者[L, R+1]的答案

假如我们当前知道了[L, R]的答案, 然后想得到[L‘, R‘]的答案, 那么代价就是O((|L-L‘|+|R-R‘|) log N)

离线, 令m=N^0.5, 将询问[l, r]按 l / m为第一关键字, r为第二关键字排序.

然后按这样的的顺序去计算, 每次都是暴力移动, 时间复杂度O(N^1.5 log N)

C.D

高斯消元求出f数组. f(u) = sigma(f(v)+w(u,v)) / degree(u), degree(u)为结点u的出度.

跑1遍tarjan, 就变成了DAG, 然后DAG求最长链就是经典问题了...dp就可线性求解.

时间: 2024-11-05 16:36:34

STOI补番队胡策的相关文章

补番计划 (长沙理工大学第十一届程序设计竞赛)(双端队列+set容器+string)

补番计划 Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 8   Accepted Submission(s) : 1 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 阿聪是一个日漫狂魔.暑假在家的时候,他有12小时在补番,12小时在睡

弱省胡策系列简要题解

现在不是非常爽,感觉智商掉没了,就整理一下最近弱省胡策的题目吧. 其实题目质量还是很高的. 如果实在看不懂官方题解,说不定这里bb的能给您一些帮助呢? [弱省胡策]Round #0 A 20%数据,O(n4)傻逼dp. 40%数据,O(n3)傻逼dp. 100%数据,令f(x1,y1,x2,y2)表示从(x1,y1)走到(x2,y2)的路径条数.于是所有路径就是f(1,2,n?1,m)×f(2,1,n,m?1).然而两条路径可能在中间的某个点相交,我们找出最早的交点,并在这个交点互换两条路径的后

【弱校胡策】2016.4.14 (bzoj2164)最短路+状压DP+矩阵乘法+高斯消元+树链剖分+线段树+背包DP

cyyz&qhyz&lwyz&gryz弱校胡策 命题人:cyyz ws_fqk T3暴力写挫了 50+10+0滚粗辣! 奇妙的约会(appointment.cpp/c/pas) [问题描述] DQS和sxb在网上结识后成为了非常好的朋友,并且都有着惊人 的OI水平.在NOI2333的比赛中,两人均拿到了金牌,并保送进入 HU/PKU.于是两人决定在这喜大普奔的时刻进行面基. NOI2333参赛选手众多,所以安排了n个考点,DQS在1号考点, 而sxb在n号考点.由于是举办全国性赛事

校内胡策(唯一一个想出来的)

2 第一题 (third.cpp/c/pas) 题目描述 小 R 最近沉迷于一个叫做 Slay.one 的游戏. 在这个游戏中,每一局有若干人参加,最终会产生一个优胜者.优胜者会获得 一个成就点. 现在小 R 已经利用某种手段得知了每场游戏有哪些人参加.假设所有人最初成 就点都是 0 ,小 R 想要知道所有游戏结束之后成就点最多的人至少有多少成就点. 校内胡策(唯一一个想出来的) 原文地址:https://www.cnblogs.com/Lance1ot/p/9445468.html

山西胡策 #7

A. B. C. 题意:给出(i, j)之类的约束表示要j必须先i,问1尽量靠前.2尽量靠前.3尽量靠前以此类推的最优方案,或输出无解. #include <bits/stdc++.h> using namespace std; const int N=100005; int cnt, ihead[N], in[N], ans[N], tot, n, m; struct E { int next, to; }e[N]; void add(int x, int y) { e[++cnt]=(E)

【胡策篇】题目

和泉纱雾与烟花大会(eromanga) 时间限制: 2s 空间限制: 256MB 题目背景 和泉纱雾是个灰常可爱的女孩子. 你永远不知道有多少恶心的死宅看到了纱雾之后, 便吵着换老婆, 正如三个月前和三个月后的他们一样. 作为一个家里蹲, 她看到了电视上转播的烟花大会, 于是特别想去看. 他的哥哥和泉正宗决定抓住这大好的机会带她去看烟花. 这一对兄妹有说有笑的来到了烟花大会的会场. (德国骨科了解一下←_←) 题目描述 烟花大会的会场非常大, 一共有\(n\)个观景点. 这\(n\)个观景点通过

山西胡策 #6

A. 题意:求去掉d物品后容量为e最大背包.每个物品有三种属性,权值.容量.数量. #include <bits/stdc++.h> using namespace std; const int V=1000, N=1005; void zop(int *d, int w, int v) { for(int i=V; i>=v; --i) d[i]=max(d[i], d[i-v]+w); } void cmp(int *d, int w, int v) { for(int i=v; i

【弱省胡策】Round #6 String 解题报告

感觉这个题好神啊. 首先我们只管 $a = b$ 的情况,那么我们自然就可以把这个串对 $a$ 取模,然后用 KMP 求出能弄出几个其他的 B 串. 具体就是把串先倍长,然后倒过来,然后求 $Next$ 数组,然后从 $2n$ 开始沿着 $Next[]$ 跳,直到跳到 $\le n$ 的时候停止,看哪些位置被跳到了,哪些位置就是合法的. 问题是现在 $a \neq b$ 怎么办..? 我猜啊,我们可以求出限制是 $a$ 的倍数时,哪些 B 串是合法的,再求出限制是 $b$ 的倍数是,哪些是合法的

【弱省胡策】Round #7 Rectangle 解题报告

orz PoPoQQQ 的神题. 我的想法是:给每一个高度都维护一个 $01$ 序列,大概就是维护一个 $Map[i][j]$ 的矩阵,然后 $Map[i][j]$ 表示第 $i$ 根柱子的高度是否 $\ge j$. 那么怎么维护 $Map[i][j]$ 呢..? 首先我们把柱子按照高度从小到大排序,然后依次给每个高度建主席树,初始时 $Map[i][0]$ 全是 $1$,然后如果当前高度 $i$ 比某个柱子 $j$ 的高度要大了,那么就单点修改 $Map[i][j]$,然后这个就是主席树动态开