上一页 1 ··· 64 65 66 67 68 69 70 71 72 ··· 83 下一页
摘要: 嘟嘟嘟 这题还是比较水的。首先O(n2)模拟显然过不了,那就换一种思路,考虑每一个数对答案的贡献,显然一个数a[i]会对后面的a[i] * 2, a[i] * 3,a[i] * 4……都贡献1,。那么就想线性求因数个数一样,对于每一个a[i],都计算出对能被他整出的数的贡献。 1 #include< 阅读全文
posted @ 2018-08-27 17:59 mrclr 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 考虑建图:如果A喜欢B,那么从A 到B就有一条边。有因为牛之间的喜爱关系有传递性,所以如果途中存在一个环的话,那就说明这个环中的任意一头牛都会被喜爱。那么自然可以想到用tarjan缩点来简化图。这样在一个DAG中,会发现被该联通块喜爱的牛一定是没有出边的。因为这张图可能不连通,所以还有记录这 阅读全文
posted @ 2018-08-27 17:33 mrclr 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 遇到这种判断相等或不等的题,一般都能想到并查集。 我的做法是如果遇到两个数相等就将这两个数所在集合合并,不等就存下来。带输入完后,在验证不等的数,如果他们相等或是在同一个集合中,说明和前面的描述矛盾,因此是不可满足的;若是直到最后都可以满足,那么这些问题可以同时满足。 数据较大,因此用一个m 阅读全文
posted @ 2018-08-27 15:44 mrclr 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 树剖自然可解,就是一道板子题,而且这道题还只问到根节点的距离是多少,而不是树上任意两点距离,就更方便了。 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<algorithm> 5 #include<cs 阅读全文
posted @ 2018-08-27 09:39 mrclr 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 我先瞅了一眼数据范围,l <= 10, T <= 15,然后凭着我不灵光的数学10! * 15 = 54432000 ≈ 5e7,于是我们就水一发全排列,然后就卡过去了…… 1 #include<cstdio> 2 #include<iostream> 3 #include<algorith 阅读全文
posted @ 2018-08-26 22:24 mrclr 阅读(275) 评论(1) 推荐(0) 编辑
摘要: 嘟嘟嘟 区间dp。 令dp[i][j]表示从[i, j]的最少染色方案数。 很明显,当 i == j 时,dp[i][j] = 1;否则,如果s[i] == s[j],即两个端点颜色相同,那么端点处的颜色只用染一次,也就是说可以从 i 这头染,也可以从 j 这头染,则dp[i][j] = min(d 阅读全文
posted @ 2018-08-26 12:37 mrclr 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这题有人说部分分O(n3)暴力,然而我暴力都没写过,调了半天也没用……还是看题解吧 首先,咱把A * ( h – minH ) + B * ( s – minS ) <= C 变个型,得到 A * h + B * s - C <= A * minH + B * minS. 令 sum = A 阅读全文
posted @ 2018-08-26 11:30 mrclr 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 此题一看就是一个dp题。 首先我们设dp[i][j]表示前 i 个人中有 j 个男生(这和dp[i][j]表示 i 个男生 j 个女生等价),然而当我们转移到dp[i + 1][j + 1]或dp[i + 1][j]时,限制条件没有用上。所以要再加两维dp[i][j][x][y]表示前 i 阅读全文
posted @ 2018-08-26 09:08 mrclr 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题有一个特别重要的一点,就是节点数为 n 的图只有 n 条边,于是就有一下几个性质: 1.每一个点的出度都为1。 2.一个k个节点的强连通分量都是有k条边的环,而且这个环不会通往其他的点,只可能有别的点通往这个环。 所以说,对于一个在环中的点,答案就是这个环的节点数(包括自环),对于一个 阅读全文
posted @ 2018-08-25 17:22 mrclr 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 嘟嘟嘟 这道题就是一个模拟。 首先我们建一个优先队列,存所有等待的进程,当然第一关键字是优先级从大到小,第二关键字是到达时间从小到大。然后再建一个指针Tim,代表cpu运行的绝对时间。 然后分一下几种情况: 1.如果等待队列为空,那直接调到当前该执行的进程的到达时间,并把它放进等待队列(可以这么理解 阅读全文
posted @ 2018-08-25 13:32 mrclr 阅读(322) 评论(0) 推荐(0) 编辑
上一页 1 ··· 64 65 66 67 68 69 70 71 72 ··· 83 下一页