2018ACM模拟赛集训
DeathYmz
划水摸鱼要不得!!!
不上紫名不改简介=_=(改了改了 打leetcode周赛去了 codeforces太晚了养身要紧)
展开
-
I - Tree and Permutation HDU - 6446 (树形dp)
2018中国大学生程序设计竞赛 - 网络选拔赛 I - Tree and Permutation HDU - 6446 (树形dp)题意:n个点,n-1条边。问n的全排列,每次排列的路径权值和为多少。1、全排列每个边使用的次数是(n-1)!*2.2、树上任意两点的距离和,一次边被经过的次数是A*B,贡献为A*B*val#include<iostream>#i...原创 2019-03-15 23:28:52 · 265 阅读 · 0 评论 -
Fang Fang HDU - 5455
2018TYUT暑期ACM模拟赛(10) Fang Fang HDU - 5455 题意:问给定的字符串最少是由几个f[]组成的。注意字符串是循环的,所以第一样例可以看作从第一个c开始:cfffcffcffff,由三个f组成 思路:记录前面的f的个数,从第一c开始记录然后判断,里面有很多需要注意的地方,要想的全面一点。#include<cstdio>#include&l...原创 2018-08-15 09:12:27 · 278 阅读 · 0 评论 -
Largest Point HDU - 5461
2018TYUT暑期ACM模拟赛(10) Largest Point HDU - 5461 思路:一个结构体直接保存t*t*a和t*b,利用两个比较函数将两个值分别进行从小到大排序,保留最大的两位,如果id相同就找交叉相选最大的,id不同直接输出最大的两个值相加。#include<iostream>#include<cstdio>#include<al...原创 2018-08-14 18:07:34 · 397 阅读 · 0 评论 -
Jesus Is Here HDU - 5459(思维)
2018TYUT暑期ACM模拟赛(10) Jesus Is Here HDU - 54 题意:求按照一定规律组成的字符串种所有cff,两两相距的距离。例如cffffcff。相距5。 思路:这道题写了挺久的,主要是写了一会儿又不想写了然后还是继续写,主要是找到递推式,找到了之后就出来了,至于是怎么发现这个递推式呢,是一点点从数据中发现的。 首先可以知道只要有c就有,cff所以可以记录c的位...原创 2018-08-14 17:28:52 · 311 阅读 · 0 评论 -
Apple HDU6206
2018TYUT暑期ACM模拟赛(8) Apple HDU6206 题意:给出四个点,问第四个点在不在前三个点构成的圆内。 思路:一开始队里的说这个简单,妈耶,后来大家发现这个小技巧是不行的,还是要高精度,作为模拟赛的所以默默去找了一个高精度大数模板。有点小不理解自己套上圆心半径计算公式的模板不对,然后看了别的大佬的题解,为啥是求半径的公式是两点相加的平法?????有点小蒙。#incl...原创 2018-07-28 08:07:35 · 291 阅读 · 0 评论 -
A Cubic number and A Cubic Number HDU - 6216
2018TYUT暑期ACM模拟赛(8) A Cubic number and A Cubic Number HDU - 6216 题意:判断素数p是否为两个立方数的差值。立方数:1 8 27 64 125….. 思路:立方数之差 x^3-y^3=(x-y)(x^2+y^2+xy) 由于p是素数,只能表示1*p 所以 x-y=1。 把x=y+1带入第二个因子。3(y^2+y)+1=p。...原创 2018-07-28 07:57:44 · 228 阅读 · 0 评论 -
The Dominator of Strings HDU - 6208
2018TYUT暑期ACM模拟赛(8) The Dominator of Strings HDU - 6208 题意:给你n个字符串找到一个字符串,可以包含给的所有串,如果存在就输出该字符串,不存在就输出No。 思路:意外暴力过,我的做法直接按照字符串的长度从大到小的排序。只需要找最长的是否包含全部串即可,这里用了string自带的函数find()。find()函数用法: 返回str在...原创 2018-07-28 07:41:04 · 249 阅读 · 0 评论 -
Friends and Enemies HDU - 5874
2018TYUT暑期ACM模拟赛(5) Friends and Enemies HDU - 5874 题意:有个王国,两个矮人之间不是敌人就是朋友,敌人带的项链之间是没有一个颜色相同的,朋友之家会有一个颜色相同。给出M个人N种颜色问颜色够不够。 思路:我们假设x个人互相敌对,然后有y个人与这x个人都是朋友,而这y个人互相敌对。 则有 x+y=m x*y<=n 当x 和 y相等时,x...原创 2018-07-22 20:44:37 · 237 阅读 · 0 评论 -
Football Games HDU - 5873
2018TYUT暑期ACM模拟赛(5) Football Games HDU - 5873 题意:足球比赛,分为n组,每组给出每个队的积分,每队之间都会有一场比赛。问所给积分是对是错。 思路:两个约束条件,首先最大的得分不会超过2*(n-1),总和不会超过n*(n-1)。个人认为这两个是不对的(例如样例:0 0 6 6)但是,过了emmmmmmmmmm#include<iostre...原创 2018-07-22 20:36:45 · 251 阅读 · 0 评论 -
C - Game of Taking Stones HDU - 5973 (威佐夫博弈+Java的高精度)
C - Game of Taking Stones HDU - 5973 分类:威佐夫博弈+Java的高精度2018TYUT秋季ACM模拟赛(13)2016大连题意:给你两个石堆的石头数量,两个人轮流拿,两人轮流从任意一堆取至少一个或者从两堆取同样多的物品。问你先手获胜还是后手胜。思路:二分求出sqrt(5),计算(b>a)(b-a)*(sqrt(5)+1)/2威佐夫博弈...原创 2018-10-02 17:39:31 · 384 阅读 · 0 评论 -
A - Wrestling Match HDU - 5971(搜索)
A - Wrestling Match HDU - 5971 分类:bfs+分类2018TYUT秋季ACM模拟赛(13)2016大连(写的有点乱=.=,有疑问可以问在下)题意:给出人数和边数,以及已知坏人好人阵营的人数。问判断能否确定所有人的好坏。例如第一组数据2的身份不能判断,其余人的身份可以假设一个身份使所有人的身份不冲突。思路:1、建立邻接表,存储(用集合分类,后想...原创 2018-10-02 18:10:05 · 467 阅读 · 0 评论 -
A buy and resell(思维,队列贪心优化)
2018中国大学生程序设计竞赛 - 网络选拔赛 A buy and resell题意:给出n,n个地区商品的价格,从1走到n,每个地区只能选择:1、买一个,2、卖一个(之前有买的)3、不买也不买思路:设置 买卖队列(优先队列小到大),若buy.top()<sell.top()<val[i],买下加上差价,num++。若sell.top()<val[i],把sel...原创 2019-03-09 15:16:52 · 460 阅读 · 0 评论 -
2018-2019 ACM-ICPC, Asia East Continent Finals Eventual … Journey
2018-2019 ACM-ICPC, Asia East Continent FinalsEventual … JourneyGym - 102056L 题意:输入:输入n,m。接下来一行输入n个数只有0,1(0=west 1=east),接下来m行每行输入两个数u,v,表示u v直接有路联通。同类之间有路。输出n个数,第i个数为i点到另外几个点的所需的最小的花费和。思路:例如...原创 2019-02-23 15:06:49 · 878 阅读 · 0 评论 -
Mr. Frog’s Game HDU - 5926(连连看+搜索)
Mr. Frog’s Game HDU - 5926分类:搜索2018TYUT秋季ACM模拟赛(14)2016CCPC东北地区题意:连连看,问给出的局面中是否可以消去一对。思路:边界消得情况,里面两个相连消得情况,分类看一下,找到变break输出 #include<iostream>#include<cstdio>#include<algor...原创 2018-10-04 12:21:15 · 255 阅读 · 0 评论 -
Mr. Frog’s Problem HDU - 5924(数学)
Mr. Frog’s Problem HDU - 5924 分类:数学2018TYUT秋季ACM模拟赛(14)2016CCPC东北地区题意&思路:给出A,B.求C,D。且A<=C<=B,A<=D<=B.并且A/B+B/A<=C/D+D/C 。直接假设只存在两种情况的答案,A==B答案就是1 A B,A!=B 答案就是2 A B B A#i...原创 2018-10-04 12:14:20 · 244 阅读 · 0 评论 -
A - Minimum’s Revenge HDU - 5922(思维+最小公倍数)
A - Minimum’s Revenge HDU - 5922 分类:思维+最小公倍数 2018TYUT秋季ACM模拟赛(14)2016CCPC东北地区 题意&思路:给你n个点每两个点之间的边权值为这两个点标号的最小公倍数,问最小生成树的值为多少,很明显,所有数和1的最小公倍数最小,所以该最小生成树为1-n各点相连的数。答案就是n*(n+1)/2-1。考虑到超过边界,所以先直...原创 2018-10-04 12:04:15 · 397 阅读 · 0 评论 -
H - Basic Data Structure HDU - 5929(思维+模拟+双端队列)
H - Basic Data Structure HDU - 5929分类:思维+模拟+双端队列题意:给四个操作,push,pop,反转,查询。push放在栈的顶端,pop是弹出栈顶元素,反转是将栈的元素反转,查询从栈顶第一个数开始和后面一个数判断0 1=1,0 0=1,1 0=1,输出最后的答案。思路:1、直接判断队尾的最后一个数,如果是0,直接输出1。如果是1,判断队尾第一0的位置...原创 2018-10-03 15:48:57 · 341 阅读 · 0 评论 -
Convex HDU - 5979 (三角形计算)
Convex HDU - 5979 (三角形计算)题意&思路:给出多边形的点数和边对应的角度。输入是n(点数),d(每个点到圆心的距离)。所以可以直接用余弦定理求解:0.5*a*b*sin(C)。这里注意这里给的是角度要换成弧度:2*pi=360°#include<iostream>#include<cstdio>#include<cmath&g...原创 2018-10-02 18:34:08 · 283 阅读 · 0 评论 -
H - To begin or not to begin HDU - 5978(概率+规律)
H - To begin or not to begin HDU - 5978 分类:概率+规律题意&思路:概率大家可以自己算算,发现答案就是10101010.....当n=0,p=1,ans=1;n=1,p=1/2,ans=0;n=2,p=1/3+2/3*1/2,,ans=1;n=3,p=1/4+3/4*2/3*(1/2),ans=0;n=4,p=1/5+4/...原创 2018-10-02 18:28:12 · 329 阅读 · 0 评论 -
Sparse Graph HDU - 5876
2018TYUT暑期ACM模拟赛(5) Sparse Graph HDU - 5876 题意:给图G的点数和边集,求图G的补集的一点到其余个点的距离。 思路:因为边的代价都是1所以只要bfs过一遍标记一下就好,只不过边数目太多所以要考虑这个。用set得到所给图的补集的边。边的存储最好还是用邻接表的方式。#include<iostream>#include<cstdio...原创 2018-07-22 20:22:17 · 269 阅读 · 0 评论 -
Rabbits HDU - 6227
2018TYUT暑期ACM模拟赛(4) Rabbits HDU - 6227 思路:这道题我绕在圈圈里想了很久!!!!题意就是给一堆兔子的位置,外面的兔子(位置排序上的在最左边和最右边的才是外面的兔子)可以跳到里面两只兔子之间。问最多移动多少步。 其实只要把最左边的以一个间隔和最右边的间隔减去小的部分。剩下的减去这间隔之间的兔子数量就是可以移动的步数#include<iostrea...原创 2018-07-20 19:18:22 · 278 阅读 · 0 评论 -
Little Boxes HDU - 6225
2018TYUT暑期ACM模拟赛(4) Little Boxes HDU - 6225 题意:就是四个很大的数相加,long long 有一种会爆。图个省事。直接用来大数的模板。直接过了-_-#include<iostream>#include<cstring>using namespace std;string sum(string s1,string s2...原创 2018-07-20 19:09:07 · 312 阅读 · 0 评论 -
Permutation HDU - 6235
2018TYUT暑期ACM模拟赛(6) Permutation HDU - 6235 题意&思路:给你n表示n个数,给出一个派来,排列的要求是pi%(pi-pi(i-2))==0。很巧妙,只要pi-pi-2=1 也就是pi%1==0。只要隔二加一即可。#include<iostream>#include<cstdio>using namespace s...原创 2018-07-23 15:39:01 · 396 阅读 · 0 评论 -
A Simple Stone Game HDU - 6237
2018TYUT暑期ACM模拟赛(6) A Simple Stone Game HDU - 6237 题意:给n堆石头,每次可以从一堆石头移动一个石头到另一堆。问最少移动多少次可以在找到一个因子是所有石头的因子。 思路:可以被所有堆石头正处,一定是可以被石头和给整除,寻找比和小的质因子。过一遍寻找。保存余数,将小堆石头加到大堆里面。#include<iostream>#...原创 2018-07-23 15:10:56 · 242 阅读 · 0 评论 -
mustedge mustedge mustedge HDU - 6200
2018TYUT暑期ACM模拟赛(3) mustedge mustedge mustedge HDU - 6200 这道题是完全看题解写的然后权当学习新算法和思想。 题意:有n组测试数据,n个点m条边。输入u,v表示u到v有变。接下来q个操作: 1 :u,v表示加上u,v的边 2:u,v查询u到v的”mustedge“有多少条。 思路: 1、Tarjan算法无向图缩点 2、用dfs...原创 2018-07-17 17:41:31 · 266 阅读 · 0 评论 -
Destroy Walls HDU - 6187
2018TYUT暑期ACM模拟赛(1) Destroy Walls HDU - 6187 题意:n,m代表n个地点,m堵墙。要把墙拆了,使点点之间可以互相到达。 思路:没给的墙,就代表是互通的。因为这个情况,所以如果找最小生成树,将边权从小到大排序,然后去除,答案不一定是最优解。只要判断这个图里面没有环就可。所以构造最大生成树,用边权和值-最大生成树的值,以及m-构造的树的边。为所得答案。...原创 2018-07-17 09:55:22 · 285 阅读 · 0 评论 -
card card card HDU - 6205
2018TYUT暑期ACM模拟赛(3) card card card HDU - 6205 题意:n对牌。上行为奖励,下行为罚值。一对排有固定差值,规则是,从头开始加差值,只要小于0 就不能在往后,想要可以移动最大的距离。需要移动几张牌往后。 思路:由于上行和值-下行的和值为0,会有一一种情况可以使得正好可以全部走完全部的排。感觉有点玄学不好说。自己理解把。#include<...原创 2018-07-17 09:36:05 · 239 阅读 · 0 评论 -
ransaction transaction transaction HDU - 6201
2018TYUT暑期ACM模拟赛(3) ransaction transaction transaction HDU - 6201 题意:商人可以选择在一个城市买书,可以选一个城市卖书。卖书-买书-两地的路费。为所获得的利润。求利润的最大值。输入n(代表n个城市)n个数每个地点书的价格。输入n-1行两地的距离。 思路。只要求出,两地的最短路径,过一遍。卖书-买书-两地距离的最短花费。求出...原创 2018-07-17 09:01:35 · 244 阅读 · 0 评论 -
number number number HDU - 6198
2018TYUT暑期ACM模拟赛(3) number number number HDU - 6198 题意:给出k,问最先找到的不能由 n= fa1+fa2…fak。构成的n是多少。(f(0)=0,f(1)=1,f(2)=1…..f(n)=f(n-1)+f(n-2)) 思路:首先暴力打表找出答案的规律。然后用高斯消元找出递推式的系数,最后用矩阵快速幂求出答案。#include<...原创 2018-07-16 22:16:44 · 156 阅读 · 0 评论 -
array array array HDU - 6197
2018TYUT暑期ACM模拟赛(3) array array array HDU - 6197 题意:给n,k,代表有n个数,可以最多有k次消除。使得最后的数字是上升的序列或者是下降的序列。 思路:这道题的另一个意思就是求,n个数的最长上升序列和最长下降序列。判断是否有一个可以满足 k >=(n-最长的长度)。 AC代码#include<iostream>#i...原创 2018-07-16 22:00:24 · 232 阅读 · 0 评论 -
K-th Number HDU - 6231
2018TYUT暑期ACM模拟赛(6) K-th Number HDU - 6231 题意:给n个数求区间大于k的第k大的数组成的数列第m大的数为多少。 思路:模拟的时候大家说要用尺取法先找出第k大然后维护。就是挺麻烦的emm。然后一筹莫展,最后向题解势力屈服。然后看到很多方法,还是 尺取法+二分最好最短,但是这个要理解半天。还是太菜了。首先明白judge函数返回的是区间第k大的数大于等于...原创 2018-07-23 18:30:02 · 261 阅读 · 0 评论 -
Geometry Problem HDU - 6242
2018TYUT暑期ACM模拟赛(6) Geometry Problem HDU - 6242 题意:给你n个点,然后求圆心和半径,要求这个圆必须过n/2的点。 思路:首先要知道怎么三点确定一个圆。然后用随机数,得三个点,这三个点确定的圆能过多少点。要注意的是,因为求圆心一起半径要用到sqrt函数所以精度这里要注意。还有rand的函数rand()%n的意思是取(0-n-1)#inclu...原创 2018-07-23 21:06:57 · 246 阅读 · 0 评论 -
Heron and His Triangle HDU - 6222
2018TYUT暑期ACM模拟赛(4) Heron and His Triangle HDU - 6222 思路:找到规律,高斯消元,得到递推式f(n)=4*f(n-1)-f(n-2)。因为会很大很大,所以用到了大数。里面的递推计算都是大数里面的。高斯消元和大数模板在本博客的模板里面都有。 ps:懒惰了几天在这里玩,想想自己还是只是每次也就过了水题,哎—_—.#include<i...原创 2018-07-20 19:05:31 · 319 阅读 · 0 评论 -
Law of Commutation HDU - 6189
2018TYUT暑期ACM模拟赛(1) Law of Commutation HDU - 6189 题意:给你n,a。m=2^n,b=[1,m], 求有多少满足a^b=b^a%m; 思路:模拟赛的当场只是听队友说了这题没有写。赛后再写。数学方面的问题啊。首先打表看了一下规律,n<=1 无论a是啥答案都是1,a为奇数的时候答案都为1 。这个肯定是能推导出来的但是我没有推。然后看打表...原创 2018-07-15 10:30:28 · 232 阅读 · 0 评论 -
Covering HDU - 6185
2018TYUT暑期ACM模拟赛(1) Covering HDU - 6185 题意:用1*2的地毯铺满4*n的地方。 思路:找递推式,然后emmmm,看了大佬的题解。找递推式+矩阵快速幂,顺便学到矩阵快速幂,正好上学期上了数值计算,矩阵上的操作挺上手。这个参考的大佬的博客的思路是分类五类情况。然后一点点铺满。详细推导内容请点下方链接内容。个人感觉很符合我的脑回路,不知道下次写类似的能不...原创 2018-07-14 22:07:11 · 356 阅读 · 0 评论 -
Duizi and Shunzi HDU - 6188
2018TYUT暑期ACM模拟赛(1) Duizi and Shunzi HDU - 6188 题意:能出的最多的对子或者顺子形式的和。 思路:贪心法,一开始自己的思路是错误的。错误想法:先找出对子为先,后再在考虑,能否把某个对子拆成两个顺子。这样就有一个样例是过不去的如:1 2 3 3 4 5 5 6 7。用我的想法答案是2.而实际上是可以3的。123 345 567 我想法的漏洞在,...原创 2018-07-14 21:57:30 · 229 阅读 · 0 评论 -
Chinese Zodiac HDU - 6213
2018TYUT暑期ACM模拟赛(8) Chinese Zodiac HDU - 6213 题意:给出两个代表生肖的,前者大于后者,两者相差多大,比如样例中的rooster-ox的值为2。就是减减加加的取模的。就是注意一下相等相差12.。#include<iostream>#include<cstring>#include<string>#incl...原创 2018-07-25 17:51:05 · 248 阅读 · 0 评论 -
Balanced Game HDU - 5882
2018TYUT暑期ACM模拟赛(7) Balanced Game HDU - 5882 #include<iostream>#include<cstdio>using namespace std;int main(){ int t,n; scanf("%d",&t); while(t--) { scan...原创 2018-07-24 19:10:37 · 219 阅读 · 0 评论 -
B - Cure HDU - 5879
2018TYUT暑期ACM模拟赛(7) B - Cure HDU - 5879 题意:很简单求1-n的(1/k/k)的和。 思路:注意点:1)n的值很大 2)打表不能直接i*i要先出 3)当n在一定大时候收敛到一个值#include<iostream>#include<cstdio>#include<cstring>using namespace...原创 2018-07-24 15:18:23 · 326 阅读 · 0 评论 -
Sort HDU - 5884
2018TYUT暑期ACM模拟赛(7) Sort HDU - 5884 题意:让你合并n个有序序列,合并k个有序序列的花费为k个序列的长度之和,问合并n个序列在不大于T的花费情况下。每次选择k个序列进行合并的k最小为多少。 思路:非常像哈夫曼树,然后就想着k叉哈夫曼树。找了一个k叉哈夫曼树的模板返回的是构造这个树的代价。然后二分找k的值。如果代价ans大于T,说明这个二分的k值小了,反之大...原创 2018-07-24 15:11:10 · 254 阅读 · 0 评论