杭州集训Day4】的更多相关文章

别问我为什么没有前三天,有时间再补~ 60+60+50=170. T1 . 坐等 memset0 ( 1s 256MB )( 原题:洛谷CF1151E Number of Components ) 树链剖分是个喜欢逛讨论区的女孩子.树链剖分看到有若干个小学生发的帖子,因为一些原因,这些帖子形成了一条链.其中第 i(1<=i< n)个帖子和第 i+1 个帖子用双向边相连树链剖分举报了这些帖子,然后作为管理员的 memset0,决定对帖子进行删除.其中第 i 个帖子有一个小学生值 a[i].但是,…
Loj #6069. 「2017 山东一轮集训 Day4」塔 题目描述 现在有一条 $ [1, l] $ 的数轴,要在上面造 $ n $ 座塔,每座塔的坐标要两两不同,且为整点. 塔有编号,且每座塔都有高度,对于编号为 $ i $ 座塔,其高度为 $ i $.对于一座塔,需要满足它与前面以及后面的塔的距离大于等于自身高度(不存在则没有限制).问有多少建造方案.答案对 $ m $ 取模. 塔不要求按编号为顺序建造. 输入格式 一行三个整数 $ n, l, m $. 输出格式 输出一个整数,代表答案…
Loj 6068. 「2017 山东一轮集训 Day4」棋盘 题目描述 给定一个 $ n \times n $ 的棋盘,棋盘上每个位置要么为空要么为障碍.定义棋盘上两个位置 $ (x, y),(u, v) $ 能互相攻击当前仅当满足以下两个条件: $ x = u $ 或 $ y = v $ 对于 $ (x, y) $ 与 $ (u, v) $ 之间的所有位置,均不是障碍. 现在有 $ q $ 个询问,每个询问给定 $ k_i $,要求从棋盘中选出 $ k_i $ 个空位置来放棋子,问最少互相能攻…
loj6068. 「2017 山东一轮集训 Day4」棋盘 链接 https://loj.ac/problem/6068 思路 上来没头绪,后来套算法,套了个网络流 经典二分图 左边横,右边列 先重新算一下行和列,就是他们x相通的的算一个 然后就去掉了障碍的作用 然后每一行贡献是递增的(0,1,2,3,4---) 直接暴力连上每条可能有的流量为1的边就行了 下面的图可能没啥用就是个普通二分图 错误 有的数组开小了 有的memset(1e6) T成40 代码 #include <bits/stdc…
在bzoj刷了好几天杂题感觉手感不是很好 继续回来集训一下 好几天没更新了啊... bzoj1875 一个无向图,一个人要从起始点走$t$步走到终点,不能沿着刚走过来那条边回去,问有多少种走法 $m \leq 60$ $t \leq 2^{30}$ 由于刚走过来那条边不能走,边数又很小,我们可以考虑把边看成点,弄一个系数矩阵出来然后$t-1$次方就可以了 bzoj3173 一个空序列,每次插入一个数,询问当前最长上升子序列的长度 $n \leq 100000$ I:我们可以用平衡树维护这个序列,…
Day4的出题人好毒瘤啊!!! T1我打表过的,正解现在也不会 #include <bits/stdc++.h> #define MAXN 10050 #define ll long long using namespace std; ll n,ans[]={,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,…
day4(day5补完的) 继续刷搜索方面的题, 初步了解了序列. T1 迷宫问题 题目描述设有一个 n*n 方格的迷宫,入口和出口分别在左上角和右上角.迷宫格子中分别放 0 和 1 ,0 表示可通,1 表示不能,入口和出口处肯定是 0.迷宫走的规则如下所示:即从某点开始,有八个方向可走,前进方格中数字为 0 时表示可通过,为 1 时表示不可通过,要另找路径.找出所有从入口(左上角)到出口(右上角)的路径(不能重复),输出路径总数,如果无法到达,则输出 0.输入格式共 n+1 行:第一行位正整数…
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> typedef long long ll; ll read(){ ll t=,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return t*f; } ; ],tot=,cnt[],C[][]; l…
XXX #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> #include<vector> using namespace std; typedef unsigned long long ll; ll a,mod=,L=; ll tr[],b[],tmp[]; std::vector <ll>…
直接上题解 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> #define ll long long ,N=; ll jc[N+],jcny[N+],jcnys[N+],K[N+],p[N+],f[N+]; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +ch-…
题目链接 考虑两个\(\#\)之间产生的花费是怎样的.设这之间放了\(k\)个棋子,花费是\(\frac{k(k-1)}{2}\). 在\((r,c)\)处放棋子,行和列会同时产生花费,且花费和该行该连通块与该列该连通块当前有多少个有关.想到网络流就很简单了,建图比较简单,类似[[WC2007]剪刀石头布]. 点数写了3n^2,其实2n^2就够了... //836ms 640K #include <queue> #include <cstdio> #include <ccty…
Day 4 今天Rating掉了两百多 为什么呢 因为是真实力打的 倒数第三 没什么好说的了 这才是我的真实水平 强的人一如既往强 作弊的人一落千丈. 只有我.是的,只有我. 被老师嘲讽了,哎,您真的不懂得和平解决吗. 然后就很难过 去洛谷发泄 就棕名了 没想到真是人性化的 没想到会真的棕名的…… 网络非常卡,卡得难受 T1 多米诺骨牌 模拟题 题目描述 Hades 与 Dionysus 在狂饮后玩起了多米诺骨牌的小游戏.现在桌上有 N 块多米诺骨牌, 每块多米诺骨牌上半部分和下半部分上都有一个…
棋盘模型 + 动态加边 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> #include<queue> #define ll long long #define M 51 #define N 500010 #define mmp make_pair const int inf = 0x3e3e3e3e; using namespace std; i…
题意 题目链接 分析 考虑每个棋子对对应的横向纵向的极大区间的影响:记之前这个区间中的点数为 \(x\) ,那么此次多配对的数量即 \(x\) . 考虑费用流,\(S\rightarrow 横向区间 \rightarrow 棋盘上的点 \rightarrow 纵向区间 \rightarrow T\) ,其中 $S\rightarrow 横向区间 $ 和 \(纵向区间 \rightarrow T\) 的费用差分设置. 如何寻找答案?如果采用 \(spfa\) 的增广方式的话,每次增广到终点的每条流…
设置 \(\sqrt{n}\) 个关键点,维护出关键点到每个右端点之间的答案以及Pam的左指针,每次暴力向左插入元素即可,为了去重,还需要记录一下Pam上每个节点在每个关键点为左端点插入到时候到最左边出现位置,总复杂度 \(O(n\sqrt{n})\). /*program by mangoyang*/ #pragma GCC optimize("Ofast", "inline") #include<bits/stdc++.h> #define inf…
[题目大意] 求有多少区间只包含1个出现次数为1的数. $1\leq n \leq 5*10^5, 0 \leq a_i \leq 10^9$ [题解] 考虑枚举右端点,设这个数上一次出现位置为pre[i],那么就是$[pre[i]+1,i]$区间加1,$[pre[pre[i]]+1, pre[i]]$区间减1,和统计区间中1的个数. 注意到数不会减到负的,那么1只可能是最小值或次小值,那么线段树直接维护即可. 复杂度$O(nlogn)$. 考场交错代码导致爆0...QAQ # include…
非常强的构造题. 很显然的是我们要构造一个类似菊花图的东西,因为这样的话两点之间路径的点数会非常少,很容易满足第二个条件. 但是因为直接菊花图的话会不满足第一个条件,,,所以我们可以构造一个类菊花图. (题解太神了,%一发题解) #include<cstdio> #define ll long long using namespace std; int main(){ int k; scanf("%d",&k); printf("%d\n",k&…
可以发现把每一个 a[i] * b[i] 加到矩阵里去,就相当于 把一个 1*m 的向量伸缩后变成 n个再加到矩阵里去,所以答案就是远=原矩阵中线性线性无关组的个数. (而且好像一个矩阵横着消元和竖着消元 ,得到的线性无关组个数是一样的啊) #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define ll long long using namespace…
题目: 题解: 暴力一波 \(SG\) 函数可以发现这么一个规律: \(p\) 为奇数的时候 : \(SG(n) = n \% 2\) \(p\) 为偶数的时候 : \(SG(n) = n \% (p+1) == p ? 2 : n \% (p+1) \% 2\) 对于奇数的情况我们就可以直接用一棵支持区间取反和区间查询 \(1\) 的个数的线段树搞定. 那么难点在于偶数的情况. 我们可以采用分块算法. 每个块分别中保存 \(\bmod (p+1)\) 为奇数的数和为偶数的数. 然后每次查询的时…
题目: 题解: 我们可以发现所有的交换器都是一个位置连接着下一层左侧的排序网络,另一个位置连着另一侧的排序网络. 而下一层是由两个更低阶的排序网络构成的. 两个网络互不干扰.所以我们可以通过第一行和最后一行列出多个2-SAT的约束限制. 所以我们可以在每一次都跑一边2-SAT来决策出最外层的交换器是否开启. 然后我们就可以发现每次2-SAT都一定有解,也就是说不可能出现无解的情况. 用2-SAT保证字典序最小即可. #include <cstdio> #include <cstring&…
考试的时候由于没有想出这道题就弃疗了 发现主要还是自己姿势不够 [问题描述] \(P\) 校某宿舍人才辈出,其舍长图书馆男神因被偷拍侧身照而在网络上一票走红. 小鲜肉 \(SJY\) 是小 \(Cat\ Rainbow\) 的好朋友,他也是该宿舍的一员.作为一名著 名的程序设计师,小鲜肉 \(SJY\) 不但注重萌萌哒的外表,还掌握了无数的黑科技. 有一天,\(SJY\) 制造了一块比特板,这个比特板有 \(2^N\)个比特元,编号为 \([0,2^N-1]\). 每个比特元有一个饱和值 \(T…
第6天写第4天的博客….可以说是很弱了…… 讲了一天的高级数据结构,可以说很迷,先是并查集,然后是树状数组,线段树,MAP函数,KMP算法. 很难……确实不是很清楚…但是很重要,回去以后这应该说是优先级最高的内容吧. 线段树板子一百多行,先要弄懂,然后再记住板子. 下午考试 第一题,并不知道用什么,不是很稳,但是暴力很稳,稳稳的50分. 第二题,传说队列能写,但是讲道理,不会,暴力也没有打 第三题,一眼并查集,一波操作,过不去编译,无奈,试图特判,然而全WA,大概样例就是让你以为程序是对的……所…
难度:☆☆☆☆☆☆☆ 题解: 有个定理,另sum(x)表示小于等于x的数中与x互质的数的和 sum(x)=φ(x)*x/2    最后可知f(x)=x  (f(1)=2)  当然打表能知道. 然后就转化为了求Σi^k 然后就是拉格朗日插值法了,不在我理解范畴........ 但这个博客介绍挺好哒 http://www.cnblogs.com/ECJTUACM-873284962/p/6833391.html std: #include <cstring> #include <ctime&…
感觉状态极差啊,今天居然爆零了 主要是以下原因: 1.又是T1看错题肝了两个小时,发现题意理解错误瞬间心态爆炸 2.T2交错了文件名 3.T3暴力子任务和正解(假的)混在一起,输出了两个答案 都想为自己刷个赞,调不出代码是水平不够,但是这样真的让人无话可说,幸好这只是模拟赛 T1: 题意:给出一个集合,要求把这个集合分成两部分,使得一个集合中的任意一个元素都与对面集合的全部元素都互质 我不知道我为什么会写炸这样的傻X题... 显然暴力就是$O(n^2)$枚举,暴力判断gcd是否为1,如果不为1说…
早上起来之后发现座位被zzh占了,得知座位改为先来后到,什么鬼…… 于是去了另一个有耳机的机房,然而并没有什么卵用. T1上来感觉很有意思,先切50分再说.T2好像是原题的说,切了原题30分后大胆猜测打出n^2,50分,然后接着考打表再得10分,开始去看第三题,不是很懂.回来接着切T2,打了半天表成功找到规律,拍了几千组数据没毛病.T1看着像一道数据结构题啊,总觉得在哪里见过类似的,然而并没有想起来,CDQ,平衡树,动态开点线段树都想过了,然而并没有什么用.先打T3暴力保分.打完后还有半个小时多…
轮船问题(ship) [问题描述] 某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市.每一对友好城市都希望有一条航线来往,于是他们向政府提出了申请.由于河终年有雾.政府决定允许开通的航线就互不交叉(如果两条航线交叉,将有很大机会撞船).兴建哪些航线以使在安全条件下有最多航线可以被开通. [输入格式](ship.in) 第一行两个由空格分隔的整数x,y,10〈=x〈=6000,10〈=y〈=100.x表示河的长度而y表示…
蛙人 (ple) 蛙人使用特殊设备潜水.设备中有一个气瓶,分两格:一格装氧气,另一格装氮气.留在水中有时间的限制,在深水中需要大量的氧气与氮气.为完成任务,蛙人必须安排好气瓶.每个气瓶可以用它的重量和含有气体的体积来描述.蛙人要完成任务,就需要特定数量的氧气与氮气.要完成任务,他所需带的气瓶的总重量最少是多少呢? 例如:蛙人有下述五个气瓶.每个气瓶表述为:氧气的体积,氮气的体积(以“升”为单位)和气瓶的重量(以“公钱(10g)”为单位): 3 36 120 10 25 129 5 50 250…
T1 一道数论神题 题目 [题目描述] LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只有点权. LYK想把这个图删干净,它的方法是这样的.每次选择一个点,将它删掉,但删这个点是需要代价的. 假设与这个点相连的还没被删掉的点是u1,u2,…,uk.LYK将会增加 a[u1],a[u2],…,a[uk]的疲劳值. 它想将所有点都删掉,并且删完后自己的疲劳值之和最小.你能帮帮它吗? [输入格式] 第一行两个数n,m表示一张n个点m条边的图. 第二行n个数ai表示…
A组T1 锻造 (forging) 1.1 题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现......自己连一个史莱姆都打不过了.勇者的精灵路由器告诉勇者其实是他自己的武器不好,并把他指引到了锻造厂. 1.2题目描述 “欢迎啊,老朋友.”一阵寒暄过后,厂长带他们参观了厂子四周,并给他们讲锻造的流程.“我们这里的武器分成若干的等级,等级越高武器就越厉害,并且对每一等级的武器都有两种属性值 b 和 c,但是我们初始只能…
下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗,于是他准备布置m个骑士,其中 每一个骑士都可以向8个方向,上.下.左.右.左上.左下.右上.右下移动若干距离.且每一个骑士都可以攻击他八个方向上离它最近的骑士. 皇后XY等不及看骑士之间的对决,但他又担心骑士的安危,她想提前知道每一个骑士会被从几个方向攻击到,设为 s.很显然 s 属于[0,8] .…