关闭
当前搜索:

Codeforces Good Bye 2017 C. New Year and Curling 几何、枚举

题意:有n个半径为r的圆盘,从第1个到第n个圆盘,依次从y = 10^100的位置向y = 0直线运动,当到达y = 0时,或者碰到之前停止运动的圆盘则停止。这里相切也作为碰到。求每个圆盘最终所在位置的圆心坐标。 几何、枚举 对于考虑圆i时,扫一遍j = 1~i-1所以圆心所在的位置,dabs = abs(x[i] - x[j]); 如果它们的差dabs > 2*r 则它们不可能碰撞。否则ans[i] = max(ans[i], sqrt(4*r*r - dabs*dabs) + ans[j]);//ans...
阅读(35) 评论(0)

Codeforces Good Bye 2017 B. New Year and Buggy Bot 枚举全排列、模拟

题意:给出一张地图,有一个出口和入口,以及一些障碍和通道。然后给出一个操作序列0123,分别表示上下左右, 求有多少种对应的可能可以使得按照该指令序列从入口走到出口。0->下,1->左,2->上,3->右为一种可能,以此类推。 枚举全排列、模拟 我们规定长度为4的序列op,op0表示上,op1表示下,op2表示左,op3表示右。 所以只要枚举0123的全排列即可得到所以的对应可能,然后用每一个排列去模拟的跑一遍地图即可判断该情况是否可行。 /*//枚举全排列代码...
阅读(31) 评论(0)

Codeforces Round #444 (Div. 2) C. Solution for Cube 枚举、模拟、魔方

题意:给出一个2*2*2的魔方的一个状态,问能不能转一下使得魔方满足每个面只有同一种颜色(1<= ai <= 6)。 枚举、模拟、魔方 根据题意只有2个面已经是同一种颜色,另外4个面每个面2种颜色,才可能可行可能可行。 每个面按以下方式编号, 1 4 2 5 6 3 则根据相同的面是1与3或者2与6或者4与5进行讨论。 然后对于每种情况讨论转的方向(顺时针或者逆时针),耐心的慢慢写,慢慢模拟就行。 详情请见代码。...
阅读(38) 评论(0)

Codeforces Round #444 (Div. 2) B. Cubes for Masha 暴力、枚举

题意:有n(1<= n <= 3)个骰子(每面标着数字0~9),要求找出最大的数x,满足1~x之间所有的数都可以用这最多n个骰子的正面表示出来。不能旋转,即不能用9表示6,反正亦然,且不要求所有的骰子都用上)。 暴力、枚举 首先用一个标记数组f,先全标记为false,之后把出现过的数都标记为true。 当n == 1的时候,只有枚举每一面,并标记即可。 当n == 2的时候,要枚举只用到1个骰子的情况和要用到2个骰子的情况,同时手动枚举全排列。 当n == 3的时候,要枚举只用到1个或者2个骰子的情况和要用...
阅读(51) 评论(0)

Codeforces Round #456 (Div. 2) B. New Year's Eve 贪心、构造、位运算、异或和

题意:给出1~n这n个数,最多选k个数,要求,选出的数的异或和最大,求这个异或和。 贪心、构造、位运算、异或和 首先对于n的二进制有b位,n ^ ((1<<b) - 1)的值必定小于n。 所以如果k为1,则只能选ans = n; 否则选n和n ^ ((1<<b) - 1)这2个数,当n和 ((1<<b) - 1)相等时依然选n,即 ans = (1<<b) - 1。...
阅读(49) 评论(0)

Codeforces Hello 2018 D. Too Easy Problems 二分+贪心

题意:有m个题目,每个题目有个需要花费的时间ti,以及ai,表示只要最终过题数不超过ai这个题才count。求最大的过题数以及过了哪些题,多种答案则输出任一答案。 二分+贪心 首先把题目按照ti的为优先级排序,时间少的在前面。 然后二分答案,mid表示最终的过题数,check的时候,维护剩余的时间tmp,用cnt表示已选的题目数量, 对于题目从左向右扫,每次如果该题的ai= 0是cnt++,然后tmp = mid则返回真...
阅读(61) 评论(0)

Codeforces Hello 2018 C. Party Lemonade 贪心、优先队列

题意:有n种饮料,每种的一份 2^(i-1)升花费ci 卢布,要求总共买L升,花最少的钱,求出最小的花费。 贪心、优先队列、乱搞 首先把饮料的单价(ci / 2^(i-1))和标号(i)丢如小根堆, 然后维护ans = 0 为已购买的饮料的最小花费, resL = L 表示剩余需要购买的饮料, precost = 9e18表示剩下的直接买一份(买的那份可能比resL多)时的最小花费。 每次取出堆顶,此时的饮料是最廉价的, 如果每份的容量大于剩余的,则刷新precost,此时如果 ans被刷新过,则 prec...
阅读(62) 评论(0)

XVII Open Cup named after E.V. Pankratiev. Eastern Grand Prix. Problem G. Gmoogle 模拟、字符串处理、文本搜索

题意:要求模拟一个搜索系统,给出文本,然后每次查询几个单词要求输出所以出现查询单词的句子。 模拟、字符串处理、文本搜索 先把文本预处理成一个一个单独的句子,并标号0、1、2......,并且用map<string, vector>建立单词到句子的映射。 然后对于每个单独查询的每个单词都会有一个集合,然后对这些集合取一个交集就是答案了。 这里用到的求交集的方法是 是用一个map check表示这些集合里每个句子出现的次数,最后遍历一遍check, 出现次数为查询的单词的个数的句子...
阅读(303) 评论(0)

XVII Open Cup named after E.V. Pankratiev. Eastern Grand Prix. Problem F. Buddy Numbers 贪心、数论、构造

题意:给出一个n,问能不能把1~n这n个数排出一个序列,使得任意相邻的两个数,一个数是另一个数的因数。 贪心、数论、构造 1 1 2 2 1 3 3 1 2 4 3 1 2 4 然后5的时候,也就是当1~n里素数的个数大于2的时候就不好办了, 此外这里n == 6的时候还是可以构造出来了, 3 6 2 4 1 5. 所以对于n == 1、2、3、4、6的时候是有答案的,直接输出即可,其它的时候都构造不出来,为-1。...
阅读(310) 评论(0)

Codeforces Round #447 (Div. 2) D. Ralph And His Tour in Binary Country 二叉树、预处理、二分、数据结构

题意:给出一颗二叉树,每条边有一个权值,q个询问,每次询问以x为起点,到yi点,求max(H - xyi, 0)求和。 二叉树、预处理、二分、数据结构 先在每个节点维护 该点 到 以其为根的点 的距离,且排序(笔者用的c++的sort所以比归并排序多出一个logn), 并维护n个前缀和。这里时间复杂度 O(nlognlogn) 空间复杂度 O(nlogn)。 然后查询的时候,对于x点进行二分可以找出答案,然后向上回溯,且维护一个变量sumlx为其祖先节点到x的距离。 查找该节点所在的链的隔壁的子树,进行二分...
阅读(205) 评论(0)

Codeforces Round #449 (Div. 2) Codeforces Round #449 (Div. 2) 二叉树、回溯、分类讨论

题意:用一个前缀s1,中间部分s2,后缀s3,fi = s1 + fi-1 + s2 + fi-1 + s3来构造字符串 fi,q个询问(n, k),每次询问第n个字符串的第k个字符。 二叉树、回溯、分类讨论 这样构造出的字符串相当于一颗二叉树,从叶子开始回溯,回溯的时候根据k的情况,判断是从左子树向根回溯,还是从右子树向根回溯。 有点想主席树的一些操作,先预处理出fi的长度,然后每次对于k和当前fi的情况,回溯到i-1, 回溯的时候 如果是左边 k -= 34(前缀),如果是右边 k -= 34(前缀) ...
阅读(96) 评论(0)

第42届ACM国际大学生程序设计竞赛 亚洲区域赛 西安站 总结

今年的暑假集训结束的时候我们队在UESTC-ACM Div.1里排名第6,所以获得一场ICPC和一场CCPC的现场赛资格。 由于上半年5月打过西安的邀请赛并取得了一块银牌,笔者那次毕竟是第一次打区域赛级别的现场赛并且拿到银牌还是很欣慰的, 所以对西安站挺有好感的,于是打区域赛的时候还是选择了西安站。 ...... 很幸运,第一次打ACM-ICPC亚洲区域赛就拿到了金牌,太感谢了。...
阅读(1686) 评论(0)

HDU - 6191 Query on A Tree 可持久化字典树+dfs序

题意:给出一颗树,每个节点有一个权值,q个询问,询问以点u为根的子树中的节点权值异或x所得的值的最大值。 可持久化字典树+dfs序 对子树进行询问很容易想到dfs序,然后变成了线性的询问区间[l,r]内异或x所得的最大值,这个是可以用可持久化字典树来做,类似于主席树,每颗字典树维护的是区间[1,i]的信息,询问的时候,如果sum[r]-sum[l-1]大于0则说明在这个区间内这个值是存在的,然后按照通常的0-1树的做法,每次尽可能访问x&(1<<i)的异或值即可是答案尽可能大。 空间复杂度 O(nlogn)...
阅读(527) 评论(0)

SPOJ - COT Count on a tree 树上主席树+LCA+任意路径问题

题意:给出一个树和树上每个点的权值,给出m个询问(u,v,k),询问在树上从点u到点v所构成的路径上权值第k小的点的权值。 树上主席树+LCA+任意路径问题 主席树维护的一个前缀和,而前缀和不一定要出现在一个线性表上(或者说树型可以线性话),即对于每个从根到点u的路径是一个线性序列,可以把这个序列建成主席树。 利用这个前缀和,我们可以解决一些树上任意路径的问题,比如在线询问[u,v]点对的距离——dist[u]+dist[v]-2*dist[LCA(u,v)]。 类似的,我们可以利用主席树来解决树上任意路径...
阅读(344) 评论(0)

HDU - 6203 ping ping ping LCA倍增算法+dfs序+线段树

题意:给出一颗以0为根有n+1个节点的树,给出p个条件,每个条件表示u,v之间有一个坏的节点,根据这p个条件求出树上至少有多少坏点。 LCA+dfs序+线段树 先跑出dfs序,并对LCA进行预处理。 然后把每组条件按照u,v的LCA为第一优先级丢到优先队列里, 且对于dfs序有个性质,如果P是U的祖先,则 p1[P] <= p1[U] <= p2[U] <= p2[P], 故每次对于每个LCA(u,v),u,v : 先判断 u,v是否存在被标记的祖先,如果都没有说明需要新标记一个点为坏点,即把LCA(u,v...
阅读(367) 评论(0)

Codeforces 620E New Year Tree dfs序+线段树+状态压缩

题意:给定一棵树,每个节点都有颜色,然后询问子树上有多少种不同的颜色。 dfs序+线段树+状态压缩 由于只有60种颜色(2^60 < 2^63),所以可以直接用二进制压位。 即sum[Ind]维护的是该区间的一个状态,从右向左第i位表示第i种颜色在该区间是否出现。 然后用上线段树区间修改+区间查询即可。 时间复杂度 O(nlogn) 空间复杂度 O(4*n)...
阅读(426) 评论(0)

POJ - 3321 Apple Tree dfs序+线段树 简单题

题意:初始时树上每个节点都有1个苹果,然后对一个节点操作,如果有苹果,就拿走,没苹果,就放上,然后询问以x为根的子树上有多少个苹果。 dfs序简单题 POJ这题好像没有开O2,vector sons[MAXN];一直TLE,换了邻接表就过了。 时间复杂度 O(n) 空间复杂度 O(4*n)...
阅读(249) 评论(0)

HDU - 3887 Counting Offspring dfs序+线段树

题意:问对于每个节点,它的子树上标号比它小的点有多少个。 dfs序+线段树 关于dfs序: dfs序是处理树上问题很重要的一个工具,主要能够解决对于一个点,它的子树上的一些信息的维护,即用来处理子树的问题。 dfs序一般开的空间是n,因为只在入的地方时间戳++,出来的地方时间戳没有额外的++,线段树的每个节点应当是时间戳。 这里,因为点在它的子树上,所以在线段树中,故在它的两个时间戳的区间内([p1[i],p2[i]),所以我们只需要从小到大考虑,它的区间里有多少个点已经放入,然后再把它放入即可。 时间复...
阅读(372) 评论(0)

XIII Open Championship of Y.Kupala Grodno SU Grodno Problem E. Enter the Word Problem 贪心+后缀自动机

题意:这里对于生成一个字符串有2种操作,1、在末尾添加一个字母,花费代价为 1;2、在末尾添加一个substr,且该substr为已存在字符串的子串,花费代价为 1。 现给出需要构造出的字符串,为最小的构造代价。 贪心+后缀自动机 贪心策略是 对于剩下的字符串suf,取它的最大前缀 substr,且substr是已构造出的字符串pre的子串,如果substr为空则执行操作1,否则执行操作2,这样每次都添加尽可能多的字母,所以代价是最少的。 所以对于前缀pre建立后缀自动机,每次把suf丢进去匹配,其最大的 ...
阅读(678) 评论(0)

HDU 6208 The Dominator of Strings 后缀自动机

题意:每组数据给出n个字符串,每组总共最多1e5个字符,然后要求判断,其中是否存在一个字符串,而其它字符串是这个字符串的子串。总共有30MB的输入。 贪心+后缀自动机 如果用AC自动机来做很可能会TLE,但后缀自动机在这里相对不容易被卡掉,首先我们多出了一个贪心优化,那就是那个可能存在的母串必定是长度最长的字符串,如果长度最长的字符串不止一个,则它们必定是完全相同的,所以后缀自动机只会用最长的那个字符串来建立自动机,而如果是AC自动机则必须使用全部的字符串来建立自动机,加上乘个memset[26]很容易被卡...
阅读(675) 评论(0)
390条 共20页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:317082次
    • 积分:7000
    • 等级:
    • 排名:第3813名
    • 原创:390篇
    • 转载:0篇
    • 译文:0篇
    • 评论:85条
    ProLights
    方徐靖华, 喜欢搞怪,喜欢美丽的星空,常常在房间里散步 哈哈*^_^*。 Pro是program,Lights是ID,fxjh是名字缩写。
    ☺Email☺
    如果哪个地方笔者理解错了,请告诉笔者,☺☺谢谢 prolightsfx@163.com
    博客专栏
    文章分类
    最新评论