集训day15 t1 poj3728】的更多相关文章

[问题描述] 有一颗n个节点的树 每个节点上都有许多奸商在卖东西,第i个奸商的理想价格为vi,即他会以vi的价格购买或卖出一件东西 有m个人希望从树上的某个点走到另一个点,问你在只进行一次买卖(每次仅限一个商品)的情况下,每个人最多能赚多少钱 [输入] 输入第一行是一个整数 n,表示树上的点数. 接下来n个正整数,表示每个奸商的理想价格. 接下来n-1行,每行两个整数x,y,表示第x点和第y点有一条边. 接下来一个整数m,表示下来有m个询问. 接下来有m行,每行两个整数x和y,表示某个人要从第x…
思路:我们考虑如果取掉一个部分,那么能影响到最优解的只有离它最近的那两个部分. 因此我们考虑堆维护最小的部分,离散化离散掉区间,然后用线段树维护区间有没有雪,最后用平衡树在线段的左右端点上面维护最小的id 我讲的貌似不是很清楚.. 还有,蜜汁80分,打死也改不出来.. #include<cstdio> #include<cmath> #include<iostream> #include<cstring> #include<algorithm>…
题目链接: 连我们都只有纸质题目...话说雅礼集训都是这样的吗... 大意 0维基本图形是一个点 1维基本图形是一条线段 2维基本图形是一个正方形 3维基本图形是一个正方体 4维基本图形是... 求\(n\)维基础图形中有多少个\(m\)维基础图形\((n>=m)\)并对\(998244353\)取模 分析 手玩样例打表吼啊 当然还是要暗中观察一下啦 线段变成正方形,点数变为原来两边,边数除了变为原来两倍之外还要加上原来点数所对应连起来的边 正方形变正方体也类似 于是我就yy出一个递推式\(nu…
思路:考试的时候打了LCT,自以为能过,没想到只能过80.. 考完一想:lct的做法点数是100W,就算是nlogn也会T. 讲一下lct的做法把:首先如果一条边连接的两个点都在同一个联通块内,那么这条边对答案没有影响,可以忽略,因此,问题变成了每次询问两个点中路径上权值最大的边(这里的权值我们令它为加入这条边的时间),边我们用一个点连接两个端点来表示. 正解:由于是无根树,因此我们用并查集按秩合并,每次把小的加到大的里面去,询问的时候暴力走lct查找最大即可. #include<cstdio>…
直接上题解 #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-…
思路:转换成n条三维空间的直线,求最大的集合使得两两有交点. 有两种情况:第一种是以某2条直线为平面,这时候只要统计这个平面上有几条斜率不同的直线就可以了 还有一种是全部交于同一点,这个也只要判断就可以了. 然后我并不能改出来,wa了好多个点 WA的程序: #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> #defin…
题意:有一堆兔子,还有一个r为半径的圆,要求找到最大集合满足这个集合里的兔子两两连边的直线不经过圆. 思路:发现如果有两个点之间连边不经过圆,那么他们到圆的切线会构成一段区间,那么这两个点的区间一定会有交集,形如s0 s1 e0 e1 同样的,如果是n个点,那就是s0 s1 s2..sn e0 e1 e2.. en 因此,我们枚举那个起始点,然后对于其他点我们按照s排序,对于e做最长上升子序列即可.时间复杂度O(n^2 logn) #include <cstdio> #include <…
Reverse 题目背景 小\(\text{G}\)有一个长度为\(n\)的\(01\)串\(T\),其中只有\(T_S=1\),其余位置都是\(0\).现在小\(\text{G}\)可以进行若干次以下操作: • 选择一个长度为\(K\)的连续子串(\(K\)是给定的常数),翻转这个子串. 对于每个\(i,i\in [1,n]\),小\(\text{G}\)想知道最少要进行多少次操作使得\(T_i=1\).特别的,有\(m\)个"禁止位置",你需要保证在操作过程中\(1\)始终不在任何…
Merchant 题目描述 有\(n\)个物品,第\(i\)个物品有两个属性\(k_i,b_i\),表示它在时刻\(x\)的价值为\(k_i\times x+b_i\). 当前处于时刻\(0\),你可以选择不超过\(m\)个物品,使得存在某个整数时刻\(t,t≥ 0\),你选择的所有物品的总价值大于等于\(S\). 给出\(S\),求\(t\)的最小值. 输入输出格式 输入格式 第一行三个整数\(n,m,S\). 接下来\(n\)行,第\(i\)行两个整数\(k_i,b_i\). 输出格式 一行…
养花 题目描述 小\(C\)在家种了\(n\)盆花,每盆花有一个艳丽度\(a_i\). 在接下来的\(m\)天中,每天早晨他会从一段编号连续的花中选择一盆摆放在客厅, 并在晚上放回. 同时每天有特定的光照强度\(k_i\), 如果这一天里摆放在客厅的花艳丽度为\(x\), 则他能获得的喜悦度为\(x\ \mathrm{mod}\ k_i\). 他希望知道, 每一天他能获得的最大喜悦度是多少. 输出输出格式 输入格式 数据第一行包含两个正整数\(n,m\). 接下来一行\(n\)个正整数, 第\(…
说实话,今天的题真的有点难! ~备受打击~ 我们先来看一看第一题吧 看起来好像不太简单,其实并不难 下面来提供两种方法吧 1.做法一 //签到题 /* 那么这一题就是告诉你n个点的坐标,把它们分别放到 0,0 0,1 0,2  ... 0,n-1每一次可以把一个点向上下左右移动单位长度 那么我们可以先把他们到横轴的距离先累加起来相当于都移动到了横轴上我们可以贪心地想一下已经到位的点肯定最好就不要动啦然后把剩下的点的x坐标进行排序 然后插到空儿里*/#include<bits/stdc++.h>…
被疯狂造谣+请家长 但生活还得继续 ...今天的题口胡一下吧明天码 PKUSC2018 D1T1 对于x:若x不翻,则x的一半到x的数都不能翻 若x翻,则x到2x都得翻 剩下随便安排 排列组合一下 PKUSC2018 D1T2 考虑状压dp sum[state]表示选的数状态为state的数值和 f[i]表示i状态的最大前缀和就是i的方案数$k∉i and sum_i>0:f_i→f_{i+k}$ g[i]表示i状态前缀和始终小于0的方案数$k∉i and sum_{i+k}≤0:g_i→g_{…
雅礼集训2017Day2 T1 给你一个水箱,水箱里有n-1个挡板,水遵循物理定律 给你m个条件,表示第i个格子上面y+1高度的地方有或没有水 现在给你无限的水从任意地方往下倒,问最多满足多少条件 n,m 1e5 SOL: 考虑答案的表示方法,肯定是类似于dp["区间1到n"]这种的 “区间1到n”这个东西我们可以状压,就过了20% 另外10%的数据只有“有水”的条件 我们cout<<m 另外30%的n平方做法肯定是要用到dp(我没有想出来这个东西怎么搞到n平方) ...…
第五章 模块 1.自定义模块: 模块分类: 内置模块(标准库)-- python解释器自带的.py文件(模块) 第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi) 自定义模块(自己写的)--不用额外下载 每一个py文件就是一个模块 import #导入模块 模块的好处: 避免些重复代码 可以多次利用 拿来主义 导入模块发生的事情: 当前的名称空间中开辟一个新空间(test) 将模块中所有的代码执行 通过 模块名.函数名 进行查找函数 使用别名使文件名更短: ​ import tes…
目录 模块 1. 自定义模块 1.1 模块分类 1.2 模块的导入 1.3 import 和 from 1.4 from 模块名 import * 1.5 模块的用法: 1.6 导入路径 2. time 模块 2.1 时间戳 2.2 格式化字符串时间(Format String) 2.3 时间之间的转换 3. datetime 模块 3.1 datetime 的操作 3.2 datetime的加减 (timedelta类) 4. random 模块 模块 1. 自定义模块 1.1 模块分类 模块…
1.自定义模块 1.1.1 模块是什么? 模块就是文件,存放一堆常用的函数和变量的程序文件(.py)文件 1.1.2 为什么要使用模块? 1.避免写重复代码,从文件级别组织程序,更方便管理 2.可以多次利用,我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用 3.拿来主义,提升开发效率 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子. 1.1.3 模块的分类 Pyt…
day16 自定义模块 自定义一个模块 import :导入(拿工具箱) # import test # test.func() 导入发生的事情 在当前的名称空间中开辟一个新的空间 将模块中所有的代码执行 通过(模块名.)进行查找(函数)工具 # print(locals()) # import test # print(locals()) # import test # print(test.name) # print(test.func()) #错误的示例: # import test.py…
自定义模块,time,datetime以及random 1.自定义模块 自定义一个模块 import #导入 (拿工具箱) 模块分类 1.内置模块(标准库) --python解释器自带的.py文件(模块) 2.第三方模块(大神写的) --需要额外下载的(www.pypi.org) 3.自定义模块(自己写的) --不需要额外下载 分模块的好处: 1.避免写重复代码 2.可以多次利用 3.拿来主义(拿来就用) 导入发生的事情: 1.在当前的名称空间开辟一个新的空间 2.将模块中所有的代码执行 3.通…
Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1.自定义一个模块 # 1. 自定义一个模块 # import # 导入 (拿工具箱) 模块分类: # 1.内置模块(标准库) -- python解释器自带的.py文件(模块) # 2.第三方模块(各种大神写的) -- 需要额外下载的 (并发编程开始讲解) (pypi) # 3.自定义模块(自己写的)…
目录 @description@ @solution@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @description@ 已知 n 个点,点 i 与点 j 有 C(i, j) 种不同的连边方式(这个不是组合数!). 求最终可能的不同连通图个数. input 第一行一个正整数 n. n <= 20. 接下来 n − 1 行, 第 i 行 n − i 个正整数, 第 j 个数表示 C(i, i+j) . output 一…
一开始我用分块大法,分成$\sqrt{n}$块,每个块上维护一个Splay,然后balabala维护一下,时间复杂度是$O(n\sqrt{n}logn)$.后来对拍的时候发现比$O(n^2)$的暴力跑得还慢,xxy学长说是Splay常数太大2333333 考试的时候没想到可以在每个块上建一个$10^5$的数组来存储每个数字出现的次数,而是用了常数巨大且复杂度多了一个log的SplayQwQ,发现自己完全没有对空间复杂度的认识啊(┙>∧<)┙へ┻┻ 标算是块状链表,什么balabala比较基础地…
题面在这里! 一开始感觉像一个类似二分图的最小割,于是成功跑偏2333333 很容易发现一个关键性质,'L'的两个角落在的偶数格 的行(或者列)的奇偶性一定不同.... 于是我们再把偶数格按照行(或者列)的奇偶性再细分成 两类,可以发现只有一个奇数格向旁边的两类偶数格都有空挡的话,才能放下一个L. 所以我们把放L看成网络中的一条流量,要经过三种点,于是对于奇数格拆点限流然后四列点直接跑最大费用最大流就行了.... 因为不用把m个L都放完,所以增广到 dis<0 的时候跳出就好啦.... #inc…
感谢gryz的mly大好人再次给我提供了题目和数据. 和昨晚那个题几乎一样,都是x^n最后转化成第二类斯特林数*阶乘*Σ(和路径长度有关的组合数),而因为组合数是可以利用Pascal公式实现O(1)递推的,所以最后的复杂度都降为O(NK). 随便推一下, ANS(x)=Σ(p是1到x的一条路径) len(p)^k = Σ(h=1 to k) S(k,h) Σ(p是1到x的一条路径)P(len(p),h)= Σ(h=1 to k) S(k,h)*h!*Σ(p是1到x的一条路径)C(len(p),h…
链接:https://www.nowcoder.com/acm/contest/172/A来源:牛客网 题目描述 小N得到了一个非常神奇的序列A.这个序列长度为N,下标从1开始.A的一个子区间对应一个序列,可以由数对[l,r]表示,代表A[l], A[l + 1], ..., A[r]这段数.对于一个序列B[1], B[2], ..., B[k],定义B的中位数如下: 1. 先对B排序.得到新的序列C. 2. 假如k是奇数,那么中位数为.假如k为偶数,中位数为. 对于A的所有的子区间,小N可以知…
[题解] 先建反向图,然后跑拓扑排序求出最长路. 将所有的点按照最长路从小到大分层,把上一层连向这一层的边按照边权为第一关键字.起点的排名为第二关键字排序. 按照这个顺序更新这一层的答案,按照这一层每个点被更新的顺序得到这一层的点的排名. #include<cstdio> #include<cstring> #include<algorithm> #define LL long long #define rg register #define N 1000010 #de…
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个矩阵.求它的所有子矩阵中本质不同的行的个数之和. input 第一行,两个正整数 n, m. 第二行,n * m 个正整数,第 i 个数表示 A[i/m][i mod m]. 保证 n * m <= 10^5, 1 <= A[i][j] <= 10^9 output 输出一个非负整数表示答案. sample input 2 2 1 1 1 2 s…
题解:https://www.cnblogs.com/gmh77/p/12051260.html 集训(×) 被虐(√) Day1 二段考 Day2 绝对不鸽 没那回事 还在路上 其实就是咕了两天 晚上爽快战斗 Day3 第三场比赛,lkf和dh出的 体验极差,T2吉司机树写挂5分走人 T1其实挺清真,T2T3应该也可做 下午ll的平衡规划专题 Day4 T1正解好像要用线性基简化后高斯消元判断,然而我直接过了 T3瞎点分治水了20 T2正解dp,然后用平衡树维护凸壳 T3正解就是点分治,每次把…
不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么心态? T2 唉,感觉好像做过类似的? T3 唉,怎么是提交答案题…… 感觉前两题都会,信心大增,于是决定先码T2 码了一会,过了第二个样列,还有一个样例?咦怎么过不去? 纠结了一会发现——读错题了,啪啪啪,全写错了……立马就凌乱了 赶快做T1,结果发现meet in middle的空间复杂度好像炸…
T1:广搜+判断矩形 注:如何判断搜的是否为矩形: 在广搜的时候,记录下边界的坐标,然后枚举一遍过去,如果搜到"."就是牛群,否则就是房间 瞥了一眼ccy的做法,据说是floodfill的思想(至今不懂是什么?...什么时候补坑吧) 在记录边界的同时+记录同一个连通块的#的个数num,判断num?=(maxx-minx)*(maxy-miny);即可 貌似ccy的做法更科学一点,学习了 //mark...在长乐集训的时候写逗了,没有判断bfs的第一个入队的点是否在边界上,以至于wa掉了…
新博客搭起来先补一发档... 那就从大假期集训第一部分说起好了QwQ 自己还是太菜掉回了2016级水平 day1: day1的时候来得有点晚(毕竟准高一)然后进机房发现早就开考了还没有给我题面于是搞了一发奇技淫巧开了网开始自己刷自己的题 然后就刷了一波语法题(悲伤的故事) 下午学长AD dalao和钢哥来讲题,上午没看题的表示全程懵逼 (T4这个大马力题我到现在还没码完...半成品代码依然在GitHub扔着) day2: day2终于提前到达机房然后开始考试 发下一个zip结果发现里面有三个文件…