摘要:
题意:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1619思路:由于式子具有递归的性质,考虑递归解,中间结果会超64位int,需用大数。另外自己写了个分数类,见代码。 1 #pragma comment(linker, "/STACK:1024... 阅读全文
摘要:
题意:给定n个线段,问能不能把x,y,z个长度为1,2,3的线段不重合地放进去。思路:首先如果n个线段长度比要放的长度之和小,则无解,否则先考虑放2和3,如果2和3放下了1肯定可以放下(这是显然的)。于是我们贪心先把n个线段放满长度为3的线段,然后再考虑删去长度为3的线段来放长度为2的线段,删的时候... 阅读全文
摘要:
题意:给n个序列,同一个序列里面元素互不相同,求它们的最长公共子序列。思路:任取一个序列,对于这个序列里面的两个数ai,aj(i 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #inc... 阅读全文
摘要:
题意:询问树上从u到v的路径是否经过k思路:把树dfs转化为有根树后,对于u,v的路径而言,设p为u,v的最近公共祖先,u到v的路径必定是可以看成两条路径的组合,u->p,v->p,这样一来便可以将判断条件转化为(LCA(u,k)=k || LCA(v,k)=k)&& LCA(k,p)=p。由于这个... 阅读全文
摘要:
题意:从某个区间内最多选择k个数,使得和最大思路:首先题目给定的数有负数,如果区间前k大出现负数,那么负数不选和更大,于是对于所有最优选择,负数不会出现,所以用0取代负数,问题便转化为区间的前k大数和。划分树:[1 6 3 8 5 4 7 2][6 8 5 7][1 3 4 2][8 7][6 5]... 阅读全文
摘要:
题意:定义域属于一个集合S={0,1,...,n-1},求S的子集个数,满足以子集的元素为定义域的函数P(x)的值域等于子集本身。思路:以元素为点,x到P(x)连一条有向边,不难发现,如果有一个有向环,那么环上的元素构成的集合就满足要求。所以问题转化为求有向环的个数,由于有向环之间不可能有交点(同一... 阅读全文
摘要:
题意:给一个矩阵a,a[i][j] = C[i][j](i>=j) or 0(i m,答案由两部分构成,一部分是2^(m+1)-1,另一部分是sigma i:m+1->n f[i][m],f[i][m]表示第i行前m列的数之和,f数组存在如下关系,f[i][m]=f[i-1][m]*2-C[i-1]... 阅读全文
摘要:
题目:给定一个1到n的排列,求字典序小于这个排列的所有排列的逆序对数之和。思路:既然是求字典序小于这个排列的,不妨将排列根据和它前k位相同来分类,然后枚举第k+1位的数(小于原序列第k+1位的数),假设逆序对的位置为(x,y),对于1 4 #include 5 #include 6 #in... 阅读全文
摘要:
题意:如标题思路:如果n在10^6以内则可以用o(nlogn)的暴力,题目给定的是n 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 ... 阅读全文
摘要:
题意:给定一个只含'(',')'的括号序列,有m个操作,改变某个位置的括号或者询问区间[L,R]内的括号进行配对后剩下的第K个括号的位置(配对的括号从原序列中删掉)。思路:首先对于一个括号序列,进行配对后剩下的括号序列必定是")))...)((...(("这种形式的,令(x,y)表示当前区间的剩下的... 阅读全文