XJOI网上同步训练DAY2 T1】的更多相关文章

[问题描述] 为了迎接校庆月亮中学操场开始施工.不久后操场下发现了很多古墓这些古墓中有很多宝藏.然而学生们逐渐发现自从操场施工之后学校的运气就开始变得特别不好.后来经过调查发现古墓下有一个太守坟由于操场施工惊动了太守所以学校的运气才会特别不好. 你——月亮中学的学生之一为了拯救学校在梦中和太守进行了沟通.太守说“只要你能解决这个问题我就保佑你们从此事事顺心.你看操场下的古墓中有…
思路:考试的时候直接想出来了,又有点担心复杂度,不过还是打了,居然是直接A掉,开心啊. 我们发现,Ai<=7,这一定是很重要的条件,我们考虑状态压缩,去枚举路径中出现了哪些数字,然后我们把原来n个点拆成 我们枚举数字的最小公倍数 个,因为如果一个数模某个数等于0,那么模它的因数也一定是0,因此我们的思路就是拆点最短路. #include<cstdio> #include<cmath> #include<cstring> #include<algorithm&…
思路:考虑得出,最终的集合一定是gcd=1的集合,那么我们枚举n个数中哪个数必须选,然后把它质因数分解,由于质数不会超过9个,可以状态压缩,去得出状态为0的dp值就是答案. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<iostream> ],c[],p[],val[],f[][]; int read(){ ,f=;char ch=g…
思路:看来我真是思博了,这么简单的题目居然没想到,而且我对复杂度的判定也有点问题.. 首先我们选了一个位置i的b,那一定只对i和以后的位置造成改变,因此我们可以这样看: 我们从前往后选,发现一个位置的s和r相等,然后我们就选这个位置的bi,由于bi会改变当前位置,因此当前位置的vi我们就能吃到了.所以,每个位置的vi我们都能拿到,所以答案就是Σvi,然后只要模拟过去就可以了.. 我真是太弱鸡了..还有这个算法的复杂度是O(N^1.5),我一直以为是O(N^2).. #include<cstdio…
[问题描述] 火车司机出秦川跳蚤国王下江南共价大爷游长沙.每个周末勤劳的共价大爷都会开车游历长沙市. 长沙市的交通线路可以抽象成为一个…
思路:我们考虑由于没有人的区间会覆盖其他人,所以我们将区间按左端点排序,发现如果地盘长度已知,可以贪心地尽量往左放,来判断是否有解,因此做法很简单,就是二分答案,然后O(n)贪心判定,复杂度为O(nlogn) 满分程序: #include<algorithm> #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #define ll long long ; i…
就是对于一个数,我们去考虑把t*****减到(t-1)9999*的代价. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<iostream> #include<map> #define ll long long typedef std::pair<ll,int> info; std::map<info,in…
思路:线段树维护最短路 #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<cstring> struct node{ ][]; }t[]; ][]; ][]; ],n; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return t*f;…
思路:记得FJ省队集训好像有过这题,可是我太弱了,根本不懂T_T #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> int n,m; ][]; ][]; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return t*f;…
考试的时候已经想出来怎么做了,但是没有时间打了T_T 思路:我们考虑将询问以lim排序,然后树链剖分,把边作为线段树的节点,然后随着询问lim的增大,改变线段树中节点的信息,然后每次询问我们用树链剖分询问,复杂度是O(nlogn),又get一种新的树链剖分打法 #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<cstring> stru…
思路:一开始看到这题的时候想DP,可是发现貌似不行..因为有前缀也有后缀,而且有的后缀会覆盖到现在的前缀,这就不满足无后效性了啊! 但是有个很巧妙的思路:如果我们知道a[i]的最大值,那么p的数量和q的数量也确定了.所以序列长度也确定了,设m为序列长度. 而且对于每个a[i]都代表了一个固定数量的p和q和长度. 因此,长度大于m/2的前缀,我们可以用总的p和总的q减去它,转换成小于等于m/2长度的前缀后缀. 这样我们可以设计DP为f[i][j][k],代表从左往右i个中有j个p,从右往左i个有k…
思路:似曾相识?...见http://www.cnblogs.com/qzqzgfy/p/5266874.html 一看时限还是4s!,于是就开开心心地打了70%的分,就是用容斥原理,就可以n^3解决问题了. 实际情况:10分,wtf 我的程序: #include<algorithm> #include<cstdio> #include<cmath> #include<cstring> #include<iostream> ; ][],n,m,K…
思路:tarjan把桥找出来,然后缩点,注意这里的缩点是:如果两个点之间的连边不是桥,那么就把他们缩起来,然后用一个lct维护,对于每个询问,如果官道连接的是两个联通块的话,就把他们连起来,否则我们就把u到v的路径全部染色成0 最后只要询问缩点完的S到缩点完的T的路径上有多少是1就是答案了,最后复杂度:O(nlogn) 至于为什么这么做:因为我们要找必经过的边,这不就是桥吗,那我们先预处理出原来图的桥,然后把图转变成树,之后对于官道来说,它只要是连接了两个在同一个联通块里的点,就表明这段路绝对不…
思路:先考虑在D高度的最小圆覆盖,再一层一层往下走时,可以保证圆心与最开始的圆相同的时候答案是最优的. 时间复杂度O(n) 有一个坑点,就是我用了srand(time(NULL))就T了,RP太差了.. #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> #include<time.h> ; const do…
Day1 T1 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上. 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号.注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖. 输入输出格式 输入格式: 输入文件名为carpet.in . 输入共n+2 行. 第一行,一个整数n ,…
Day1 T1 题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的石头剪刀布游戏的基础上,增加了两个新手势: 斯波克:<星际迷航>主角之一. 蜥蜴人:<星际迷航>中的反面角色. 这五种手势的胜负关系如表一所示,表中列出的是甲对乙的游戏结果. 现在,小A 和小B 尝试玩这种升级版的猜拳游戏.已知他们的出拳都是有周期性规律的,但周期长度不…
原创作者 | 疯狂的Max 论文CoLAKE: Contextualized Language and Knowledge Embedding 解读 01 背景与动机 随着预训练模型在NLP领域各大任务大放异彩,一系列研究都致力于将外部知识融入大规模预训练模型,比如ERNIE[1]和KnowBERT[2],然而这些模型的局限性可以总结为以下三个方面: (1)entity embedding都是通过一些knowledge embedding(KE) models,比如用TransE[3],预先提前…
Day1 预计得分:\(32pts\)(我裂开了--) T1 美食家 表示考试的时候想到了关于矩阵快速幂的想法,甚至连分段后怎么处理都想好了,但是没有想到拆点,还有不知道怎么处理重边(这个考虑是多余的). 所以打了一个 \(40pts\) 的暴力,结果我建边的时候的 \(add\) 函数不知道为什么打成了 \(int\) 类型,而且没有返回值,然后就光荣的爆零了-- 还有,环的分没打纯属是我不想打(不要问我为什么 T2 命运 表示直接开始着手 \(32pts\) ,用暴力的容斥来计算答案.但是考…
T1 题意:从1− n中找一些数乘起来使得答案是一个完全平方数,求这个完全平方数 最大可能是多少. 解析: 1.  质因数分解 2.  1->n用质因数指数的相加的形式将1*n累乘起来 3.  扫一遍指数为奇数的质因数都-1,偶数的不变 4.  快速幂乘一遍,同时取模 #include<iostream> #include<cstdio> #include<cstring> #define ll long long #define mod 100000007 us…
ttt学字符串 题目大意 大法师ttt 最近在学习字符串,有一天他看到魔力xtx左手拿着A字符串,右手拿着B字符串,两个字符串的长度都是一样的,而且都由abc三种字符构成,大法师ttt的灵力值为C,现在告诉你 a变b b变c以及c变a分别需要消耗的灵力值(其他变换是不存在的),问你在ttt的灵力值范围内最多能有多少种不同的方案可以从xtx的左手串变换到xtx的右手串 输入格式: 前两行输入两个长度相同的字符串 ,第一个串表示左手串,第二个串表示右手串,右手串不能变第三行输入三个整数分别代表转换的…
#include<iostream> #include<cmath> #include<cstdlib> #include<cstdio> #include<algorithm> #include<string> #include<cstring> #include<vector> #include<deque> #include<stack> using namespace std;…
时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold  题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有N块岩石(不含起点和终点的岩石).在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点. 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长.由于预算限制,组委会…
4768 跳石头 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 一年一度的"跳石头"比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有N块岩石(不含起点和终点的岩石).在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点. 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离…
思路:转换成n条三维空间的直线,求最大的集合使得两两有交点. 有两种情况:第一种是以某2条直线为平面,这时候只要统计这个平面上有几条斜率不同的直线就可以了 还有一种是全部交于同一点,这个也只要判断就可以了. 然后我并不能改出来,wa了好多个点 WA的程序: #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<algorithm> #defin…
题目传送门:https://www.luogu.org/problemnew/show/P2822                 ↓题目大意↓ 数据的极限范围:n,m≤2000,k≤21,数据组数≤10000. 由于此题k不大于21,故在计算组合数Cij时,并不需要存储它的真实数值,只需要存储其≤19的所有素因子的个数,判断Cij是否为k的倍数,仅需要判断Cij中各素因子的个数是否大于等于k中的个数即可.基于组合数的性质,我们如果要求出Cij,我们可以通过Ci(j-1)乘上i-j+1然后再除以…
题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块岩石(不含起点和终 点的岩石).在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达 终点. 为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳 跃距离尽可能长.由于预算限制,组委会至多从起点和终点之间移走 M 块岩石(不能 移走起点和终点的岩石). 输入输出格式 输入格式:输入文件名为 stone.in. 输入文件第一…
A 算法 1 对于每组询问,暴力的算出每个二次函数的取值. 时间复杂度 \(O(nq)\).期望得分 \(20\) 分. 算法 2 当 \(x>0\) 时,要求 \(a_ix^2+b_ix\) 的最大值,只需要求出 \(a_ix+b_i\) 的最大值. 于是问题就转化为了,给定一堆直线,求在某些点的最大值.显然答案一定在上凸壳上. 对于每组询问,只要二分出它在上凸壳的哪个位置就行. 同样的,当 \(x<0\) 时,答案在 \(a_ix+b_i\) 的下凸壳上,再写一个凸壳就行了. 时间复杂度…
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算组合数的一般公式: 其中n! = 1 × 2 × · · · × n 小葱想知道如果给定n,m和k,对于所有的0 <= i <= n,0 <= j <= min(i,m)有多少对 (i,j)满足是k的倍数. 输入输出格式 输入格式: 第一行有两个整数t,k,其中t代表该测试点总共有多少…
暴力枚举. #include<cstdio> #include<algorithm> using namespace std; ][],d,n,x,y,z,num,ans=-; int main() { scanf("%d%d",&d,&n); ;i<=n;i++) { scanf("%d%d%d",&x,&y,&z); a[x][y]=z; } ;i<=;i++) ;j<=;j++)…
3578 无线网络发射器选址 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 白银 Silver 题目描述 Description 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的 129 条东西向街道和 129 条南北向街道所形成的网格状,并且相邻的平行街道之间的距离都是恒定值 1 .东西向街道从北到南依次编号为0,1,2…128,南北向街道从西到东依次编号为 0,1,2…128. 东西向街道和南北向街…