
GFOJ
Moon1125666900
这个作者很懒,什么都没留下…
展开
-
作业GFOJ107(zw_dalao)
SG函数Problem Description Alice 和 Bob 总喜欢聚在一起玩游戏(T_T),今天他(她)们玩的是一款新型的取石子游戏。游戏一开始有N堆石子,Alice 和 Bob 轮流取出石子。在每次操作中,游戏者必须选择其中的一堆石子,并作出下列的其中一种操作:(1)移去整堆石子(2)假设石子堆中有X颗石子,取出Y颗石子,其中1<=Y原创 2017-03-16 22:42:29 · 765 阅读 · 0 评论 -
7.12 模拟赛
T1 题意:在一个 n *m 矩阵中,每一个元素都是非负整数,给出两个整数 P 和 S,对于若干个矩形区域,然后把区域内所有≥P 的元素个数与他们的和相乘得到权值q,q之和与 S 之差的绝对值小于某一个值 D,胜利,反之失败。已知将要选择的矩形区域,在 S 和 D 一定的情况下,他能否胜利,以及q之和与 S 之差的绝对值最小是多少。 先对P进行二分,再对于每个矩阵[1,1,i,j][1,1,i,j原创 2017-07-13 08:12:31 · 420 阅读 · 0 评论 -
7.11 模拟赛
T1 在一个n*m的棋盘上,求每一行每一列都至少有一个棋子的总方案数。输出答案对1000000007取模用f[i][j]表示做到第i行,j列至少有一个棋子。 则枚举上一行k列至少有一个棋子, f[i][j]=∑j−1k=1(f[i−1][k]∗2k∗Cj−kn−k)+f[i−1][j]∗(2k−1)\sum_{k=1}^{j-1}(f[i-1][k]*2^{k}*C_{n-k}^{j-k})原创 2017-07-12 08:43:14 · 710 阅读 · 0 评论 -
2017.7.4 模拟赛
T1 水题,然而I64d和lld T2 sb物理题……各种积分乱搞。最后得到一个十分简单的式子。 T3 一开始想都没想直接上树套树,然后就炸了…… 正解是扫描线,先离线对车按纵坐标排序,矩阵按右端点的纵坐标排序,每次新加入一个车,则对该行的权值进行更新,判断一个矩形合法,即在当前行列进行区间查询最小值tmp,如大于当前左边界则合法。横着竖着分别做一遍即可。 如图所示,显然应该用红色车代替蓝色原创 2017-07-04 21:21:28 · 266 阅读 · 0 评论 -
2017.7.5 模拟赛
T1 给定一个序列,包含非负整数,0可以“变”为任意数。求最长上升子序列。 首先,对于常规的nlogn算法,用一个单调栈st维护长度为k的最长上升子序列的最小末尾取值。每次做到第i位,如大于栈顶,则直接插入栈,否则在栈中二分查找第一个>=>=a[i]的元素,然后替换掉。 考虑0的情况,相当于可以在任意栈内位置j,在st[j]后插个st[j]+1,即栈中每个数往右移一位,再+1. 如图所示,原创 2017-07-06 21:18:35 · 369 阅读 · 0 评论 -
2016.7.6 模拟赛
T1 sb模拟 T2 求树上三点不是一条链的情况。 等价于任意三个子树大小乘积。 T3 http://www.gdfzoj.com/oj/contest/153/problems/3 给出一个矩阵,可以沿着格子线折叠,新得到的格子为重叠起来的格子和。问可以得到的最大价值。 对于行dfs出可行折叠方案,列DP每种方案最大值。注意选的相邻行列的奇偶性要不同。 一开始读错题QAQ……原创 2017-07-06 21:34:53 · 301 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟23--A组
T1 题意:题解:筛出1e6以内的质数,再用枚举每个质数i,把【l,r】间的i的倍数都除掉i, 时间为O(n2+n3+...\frac{n}{2}+\frac{n}{3}+...)~O(NlogN) (N为区间长度) 代码:http://paste.ubuntu.com/25906707/T2 、 题意:对于四个点组成的环,起点重点均为2,给定下限K,要求路径至少为K且最小 题解:对于原创 2017-11-07 15:47:21 · 400 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟24-A
T1 :随便坐 T2:重点是求出三元环,O(N364\frac{N^3}{64}) T3:BFS,建图时注意一下,对于每个权值挂个链表,每次枚举子集后打标记。原创 2017-11-07 16:04:25 · 369 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟25-A
T1 写写画画可以发现其实原式相当于a*b……至于证明,相当于从原点向1~n,1~m的矩阵,画一堆直线,然后gcd==1的表示直线第一个点,min【ni,mj\frac{n}{i},\frac{m}{j}】则表示穿过的点数。所以相当于遍历了整个矩阵。T2 在dfs序上DP,相当于对于一个个区间,要么选左端点,要么选右边区间的值,搜一遍即可。T3貌似是DP加单调队列优化。原创 2017-11-10 07:06:10 · 308 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟26-A
T1 概率DP,随便做。 T2 比赛时看错题,以为起重机可以叠加来搬货物,然而并不可以QAQ。于是写了个30的zz状压,发现居然还有分…… 正解是贪心or网络流直接上。我还是太菜了QAQT3 首先发现对于叶子节点,它和相邻点形成一个团。找到一个叶子节点后,找到其父亲作为根,判断的方法是看该‘父亲’和孙子节点是否有交,没有则不合法。找到根后dfs即可。原创 2017-11-10 07:17:32 · 317 阅读 · 0 评论 -
NOIP2017提高组模拟22-雅礼国庆10.5
T1 题意:有m(<=1e4)层边,每层有k(<=10)个点,第一层只有一个点S,最后一层只有一个点T。然后整个图是一个DAG,可以一次取反相邻两层的边,问有多少种方案使得最后的S到T的路径数为偶数,有模数。题解:用f【i】【j】表示做到第i层,路径数的奇偶性情况为j,如果是偶数为0,奇数为1。最后把状态中1 的个数为偶数的累加即可。 代码:http://paste.ubuntu.com/258原创 2017-11-03 20:39:11 · 505 阅读 · 0 评论 -
Problem 1049: Lost My Music【可持久化栈+倍增】
首先要求的式子是一个斜率的相反数,其实就是求斜率的最大值,那么我们只需维护一个下凸包即可, 考虑到直接用栈来存,如果是在一条链上的话可以保证每个数只会被插入弹出一次,直接做,暴力退栈就行了。 然而在树上暴力退的话会被卡成O(N2N^2)…… 所以对于每个点存一个倍增数组,记录其在凸壳里的祖先,然后乱搞即可…… 代码://#include <bits/stdc++.h>#include <c原创 2017-11-30 11:25:37 · 492 阅读 · 0 评论 -
GFOJ510树上路径
Problem 510: 树上路径 Time Limit: 3000 ms Memory Limit: 512000 KBProblem Description 练一练点分…… dep表示点到重心距离,mx_mx表示点到重心最大值,对于mx_mx排序后乱搞…… 表示拍了很久发现犯了个**错误……#include <cstdio>#include <algorithm>#define原创 2017-04-16 18:43:18 · 423 阅读 · 0 评论 -
2018省选训练29 A
http://www.gdfzoj.com/oj/contest/375/problems/1 线段树妙题,题意是给定一个数列,操作有区间与/或一个值,和查询区间最大值。 维护一个same表示,区间内的数哪些位是全部相同的,以及bit,表示相同的是什么,修改操作本质是将一个区间某些位强制赋为1/0,如果修改的位是当前区间same的子集,直接用一些奇奇gaygay的位运算,最后发现,相当于区间加原创 2018-04-26 07:49:54 · 276 阅读 · 0 评论 -
7.17 模拟赛
T1 O(n)乱搞,算出每个点向左向右延伸的最大长度,取个min即是当前点的答案。最后扫一次取个max即可。T2 数据暴水,暴力(玄学)居然都过了……貌似正解是取个最小公倍数,取个膜,就能保证时间复杂度。T3 正解是三分,然而可以用快排+乱搞水过,因为中位数小于0就可以直接加到0,总体绝对值和一定变小。原创 2017-07-17 21:54:47 · 364 阅读 · 0 评论 -
7.13 模拟赛
T1 一棵树,随机选两个不同的点x,y,添加一条边,使环经过x,y,问环的长度期望值是多少。分别预处理出x子树内部外部到x的距离和,然后对于询问x,y分是否存在祖先关系即可。T2 图里有n个主机,每个主机都有且仅一条出边(单向)连向另一台主机,而且每一条边都有一个权值(只能是1、2)。给定一个值x,从某一台主机出发,沿着出边走,走到某一台主机上,问能否使整条路径(至少包含一条边)的权值和等于x。读原创 2017-07-19 20:15:48 · 344 阅读 · 0 评论 -
作业GFOJ471(sg函数)
http://www.gdfzoj.com/oj/problem/471 Problem Description 给出一颗满二叉树,以及每个树节点上的石头数量 A和B轮流操作,每次选择一个节点,将其上的任意个石头推向它的儿子 不能不推,若选择的节点为叶节点,则被推的石头消失 A先手,要求输出在保证A必胜的前提下,A第一步有多少种走法 多组数据Input 第一行一个T,表示数据组数每组数原创 2017-03-20 13:14:18 · 369 阅读 · 0 评论 -
GFOJ470(dhr_dalao)
http://www.gdfzoj.com/oj/problem/470 Problem Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。 输出答案时,小数点后第六位后的全部去掉,不要四舍五入.Input 一行输入两个数R,B,其值在0到5000之间Outpu原创 2017-03-20 21:31:58 · 368 阅读 · 0 评论 -
GFOJ463
http://www.gdfzoj.com/oj/contest/104/problems/1 Problem 463: 数学作业 Time Limit: 1000 ms Memory Limit: 512000 KBProblem Description 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题:给定正整数 N 和 M,要求计算 Concatenate (1 ..原创 2017-03-13 20:20:02 · 319 阅读 · 0 评论 -
GFOJ64水一水
http://www.gdfzoj.com/oj/problem/64 Problem Description BNU ACM校队有n名队员,从1到n标号,每名队员根据自身情况拥有一个特征值,其中第i名队员的特征值是a[i]。现在BOSS问了m个问题,每个问题给定[l,r],要求小Q同学马上从标号位于区间[l,r]内的队员中选出两名队员,使得这两名队员的特征值相同,并且不默契度要尽可能小,两名队原创 2017-03-10 13:03:33 · 576 阅读 · 0 评论 -
练习
1、https://vjudge.net/problem/AtCoder-2362 题意:给定无向图,每次询问一个点x,对距离d以内的点染色col。问每个点最后颜色 点数边数<=10510^5.距离d<=10首先倒过来做显而易见。 每次搜索维护一个f[x],表示每个点往外最多延伸距离。如果当前点x搜索的距离d<=f[x],直接跳。对于没染色的点染色。更新f数组。2、https://nanti.原创 2017-07-10 20:05:16 · 377 阅读 · 0 评论 -
8.25模拟赛
T1 先把a【i】减去i,然后问题就变成了求不下降子序列,显然最后的序列的值域一定是原来的子集。将a数组中的数排完序后塞到b数组里,枚举做到a数组第i个数,最后一个数取b【j】时的代价,则f【i】【j】=min{f【i-1】【k】}+abs(a[i]−b[j])abs(a[i]-b[j]) 然后f【i-1】【k】可以用一个前缀min来维护。T2 如图,矩阵快速幂。T3 签到题,用个字典树即可。原创 2017-08-29 20:51:15 · 348 阅读 · 0 评论 -
NOIP2017多校联测&提高组模拟21 11.3
T1 旋转坐标系就变成了一堆矩形,然后乱搞即可 然而比赛时我没有旋转直接上,刚了2h+,3K+的代码QAQ http://paste.ubuntu.com/25877178/ T2 相当于把坑反向移动,然后就只用维护四个方向的并查集即可。 http://paste.ubuntu.com/25877184/ T3 60分的做法有两种, 一种是 mask 表示已经报出哪些熟人的名字原创 2017-11-03 11:28:45 · 317 阅读 · 0 评论 -
NOIP2017提高组模拟19 /10.31
A 设编号从0开始,首先 有f【i】=(f【i-1】+m)%i 相当于 把第m%n-1个人踢掉,令K=m%n。等价于子问题在n-1个人最后活下来的人f【i-1】, 得到 f【i】=(f【i-1】+m)%i。 然后观察可以发现 i比较大时,f按照等差数列递增,因此可以一次直接跳过一大段。 O(能过)B 所求式子相当于 (xi∗yj−xj∗yi)2=∑rlx2i∗原创 2017-10-31 19:28:48 · 311 阅读 · 0 评论 -
8.26模拟赛
T1 首先对于第一回合移动至多K步后,变成先打锁再移动,所以可以无视锁……BFS到一个点后,看一看到四个边界的距离,取个min,再乱搞即可。注意特判一开始就在目标位置。 另:一开始用dfs愉快GG,且BFS时注意打标记的顺序!!!T2 首先考虑Z=0的情况,显然按照A-B排序,先全部取B,再去A-B的前X大即可。Z!=0时,同样按照A-B排序,显然在最后的方案中,存在一个分界点k,使得1~k只选A原创 2017-08-29 21:16:23 · 363 阅读 · 0 评论 -
8.23模拟赛
T1 第一眼主席树!!!肯定会T。 ~~~~ 然而把数按照从小到大的顺序删除,用一个双向链表维护当前数组, 1)枚举即将删除的数x,往左跳k-1个数; 2)然后看当前区间往左右有多少个空格,乘一下即为这K个数为前K大且x为第K大的方案数,再将整个区间往右移; 3)重复流程2),直到x成为了区间最左端的点。 −−−−−−−−−−−−−−−−−−−−−−−−−−−-----------原创 2017-08-29 16:51:14 · 359 阅读 · 0 评论 -
8.24模拟赛
T1 用个优先(最小值优先)队列维护a【i】+a【j】,如果队顶元素和当前扫到的元素X相等,则同时弹出,否则把X加到a数组中,并把X和之前的a相加后插入到队列里。 时间:O(N2logN2)O(N^2logN^2) −−−−−−−−−−−−−−−−−−−------------------- T2 ~在线做法用个主席树即可,裸题。 ~~~~~然而可以用离线+树状数组水过。将一个询原创 2017-08-29 17:57:30 · 446 阅读 · 0 评论 -
8.22模拟赛
T1 二分答案k,计算利用容斥计算1~k有多少个满足题意。T2 一开始300范围,一眼Floyd,发现还要枚举不能到达的点,还要有一重N,得到O(N4N^4)的优秀算法。愉快T掉。 然而可以这么想,中间节点y=1~n2\frac{n}{2},k为n2+1 n\frac{n}{2}+1~n时,得到的矩阵是一样的,所以可以先令k循环n2+1 \frac{n}{2}+1~~ n ~n,然后递归做左边,右原创 2017-08-22 21:47:22 · 288 阅读 · 0 评论 -
8.21模拟赛
T1 由题意所给式子可以得出在Min、Max之间的值一定可以取到。T2 DP 设Min[i][j]为以i为根节点取j个点的最少黑点个数,Max反之,显然有Min~Max之间的黑点都可以取到。简单推一推即可。T3 将所给字符串建个AC自动机,然后满足一个字符串的子串是某个字符串的前缀,即一直跳fail,打个标记,对于两个字符串跳两次,两个标记同时满足即可。原创 2017-08-22 09:40:16 · 284 阅读 · 0 评论 -
【GFOJ】2018省选训练12 & 多校联测
开始了刷题…… T1 题面:给出长度为 m的上升序列A, 请你求出有多少种1……n的排列, 满足A是它的一个LIS. (1<=m<=n<=15) 一开始想到过状压求LIS过程中的单调栈,然而没往下想,去手玩推式子了……然而没推出来…… 题解:【状压+3进制】 设F【S,S0】,S,S0为n位二进制,S表示当前已经加了哪些元素,S0表示当前单调栈中的元素,那么枚举最后一个加...原创 2018-05-19 16:45:27 · 335 阅读 · 0 评论