2016寒假训练4

题目链接

A CodeForces 490A Team Olympiad

题意:给出N个人,有的人擅长1有的人擅长2有的人擅长3,要求进行分成3人组,每组都有1,2,3,输出尽可能多的组的方案。

做法:暴力,答案肯定是1,2,3人数中的较小值

B CodeForces 490B Queue

题意:给定N个人,已知每个人前面的人(分奇偶),求出原本人的顺序

做法:分奇偶求出原本的顺序

C CodeForces 490C Hacking Cypher

题意:给定一个很长的数以及a,b,问是否可以把这个数切成两部分,前面一部分可以被a整除,后面一部分可以被b整除

做法:moda[i]表示前i位%a的值,modb[i]表示第i位到最后一位的数%b的值,O(N)预处理出这两个数组即可

D CodeForces 490D Chocolate

题意:有两个块巧克力,每一次可以吃掉长或者宽的一半,或者1/3,问最少多少次可以使得两块巧克力的面积相同

做法:求出原本两块巧克力的边长除去所有的2和3之后的长度,如果面积不相同,无论操作多少次都肯定不可以。如果相同,直接模拟

E CodeForces 490E Restoring Increasing Sequence

给定N个数字,有的数字有的位置不确定,要求这N个数严格递增,问是否可以求出一个满足条件的序列。

做法:贪心。如果当前处理的数字位数比上一个数字长,那么这个数字就赋值为1000…0,如果这个数字位数比上一个数字短,那么就直接输出NO。如果位数相等,就通过DFS确定最小的这个数,使得尽可能的满足要求。

F CodeForces 490F Treeland Tour

题意:求一棵树上的最长上升子序列

做法:枚举起点,做二分的LIS

G CodeForces 483A Counterexample

题意:给定L,R,要求求出3个数,使得前两个数互质,2和3两个数互质,1和3两个数不互质

做法:直接3个for

H CodeForces 483B Friends and Presents

题意:给定cnt1,cnt2,x,y,要求构造一个数列1,2,3…v,其中选出cnt1个数字不能被x整除,选出cnt2个数不能被y整除(两组数中不能有相同的)

做法:二分答案+容斥原理

I CodeForces 483C Diverse Permutation

题意:给定n和k,要求构造一个长度为N的数列,使得相邻两个数字的差的绝对值的个数为k

做法:构造

I CodeForces 483D Interesting Array

题意:给定N,M,接着给出M个区间,表示这M个区间的数字的与为Qi,问是否可以求出原本的序列,满足要求

做法:线段树。由于已知的是若干数的相与之后的结果,我们需要尽可能的存下来所有的1,那么我们对所有重复的区间求或,这样可以保留尽可能多的1。然后根据构造出来的这么一个序列,判断是否满足要求。

题目+简要题解+代码

posted @ 2016-03-04 23:20  coolaaa  阅读(197)  评论(0编辑  收藏  举报