04 2022 档案
摘要:题目链接 可以很容易地想出暴力思路,但复杂度高达O(n2),所以必须优化 思路1:不难发现在a数组到i,b数组到j处,在它们前面的有i*j个,这i*j个数不可能比它大,所以只要在暴力枚举过程中判断i*j<=n即可。 最后只要对和排序,求出前n个。注意存放和的数组不能只有n个。 vector<int>
阅读全文
摘要:思路:dp,设dpu,i代表以u为根,距离为i+1的节点总数。 最后dpu,1要加上所有dpv,0-1,其中v是u的子节点(要-1是为了排除v->u的边) 则每个节点i的答案为dpi,0+dpi,1+1 代码如下: 1 for(int i=1;i<=n;i++){ 2 for(int j=fir[i
阅读全文