思维题 and 妙题集锦
分享一些思维要求高但代码实现相对较简单的题,和一些解法极其精妙的题。
SC.ldxcaicai
我很菜=_=
展开
-
2018.08.10 atcoder No Need(线性dp)
传送门 输入一个序列anan{a_n},输入kkk。 如果对于所有包含aiaia_i,且和大于等于kkk的集合,去掉aiaia_i之后和还大于等于kkk,那么aiaia_i就是可有可无的。 求出可有可无的元素的个数。可有可无的元素一定是最小的若干个,于是在排序之后看看如果有iii满足a[i],a[i+1],...,a[n]a[i],a[i+1],...,a[n]a[i],a[i+1],....原创 2018-08-10 22:41:07 · 441 阅读 · 0 评论 -
2018.08.10 atcoder Median Sum(01背包)
传送门 题意简述:输入一个数组anan{a_n}。 对于所有2n−12n−12^{n-1}个非空子集,每个子集的权值是包含的所有元素之和。 求这2n−12n−12^{n-1}个非空子集权值的中位数。 代码:#include<bits/stdc++.h>using namespace std;int sum=0,n,x;bitset<5000000>s; ...原创 2018-08-10 21:48:18 · 317 阅读 · 0 评论 -
2018.07.22 bzoj3613: [Heoi2014]南园满地堆轻絮(逆序对结论题)
传送门 做这道题有一个显然的结论,就是要使这个数列单调不减,就要使所有逆序对保证单调不减,也就是求出所有逆序对的最大差值,然后除以2然后就没了。代码如下:#include<bits/stdc++.h>#define N 5000005using namespace std;inline long long read(){ long long ans=0; ...原创 2018-07-22 14:20:21 · 194 阅读 · 0 评论 -
2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)
传送门 题意:给你x个a,y个b,z个c,显然这些字符可以拼成若干字符串,然后求这些字符串中最小表示法表示出来的最大的那一个。解法:贪心思想,用multiset维护现在拼成的字串,每次取一个最小的和一个最大的拼在一起,最后剩下的就是答案。代码如下:#include<bits/stdc++.h>using namespace std;int a,b,c;multise...原创 2018-07-20 14:42:50 · 426 阅读 · 0 评论 -
2018.07.12 atcoder Go Home(贪心)
传送门 题意简述:大家在数轴上生活,公司在 s。 班车送所有人回家,有 n 个住处,第 i 个位置在 xi,居住了 pi 的人。 保证 xi 互不相同。 大家⼀起投票向前还是向后,如果票数相同就固定向数轴负方向,每个⼈是自私的,希望自己尽早回家。 (但是注意,虽然是自私的,并不⼀定投自己家的方向) 到家了必须下车(因为自私) 问大家都做最优决策的情况下,最后⼀个回家的人需要多久到家?...原创 2018-07-12 23:24:12 · 396 阅读 · 0 评论 -
2018.07.12 atcoder Choosing Points(数学分析好题)
传送门 一句话题意:给出n,d1,d2n,d1,d2n,d1,d2,需要求出n2n2n^2个点使得每两点之间的距离不为d1d1d1或者d2d2d2。好吧这题第一眼直接暴力建图然后发现时间复杂度上天。显然不能暴力建图,看来d1,d2d1,d2d1,d2应该具有一些奇妙的性质。那么我们对d1,d2d1,d2d1,d2来进行奇偶分析。 我们让ddd表示两点之间的距离,aaa表示两点之间的横坐...原创 2018-07-12 22:34:35 · 284 阅读 · 0 评论 -
2018.07.13 数学技巧
早上大概是学了一个叫做切比雪夫距离的东西。切比雪夫距离的数学定义大概是这样的:对于两个点(x1,y1),(x2,y2)(x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2),它们之间的切比雪夫距离是max(|x1−x2|,|y1−y2|)max(|x1−x2|,|y1−y2|)max(|x_1-x_2|,|y_1-y_2|),这个东西有什么用呢?观察两点之间的切比雪夫距离计算公式...原创 2018-07-13 09:39:55 · 174 阅读 · 0 评论