摘要:
题意:有N个指针头,M个标记,用这N个针头扫描所有的标记,针头之间互不影响,求扫描完M个标记的最短时间 分析:二分搜答案,mid为时间限制,则只要所有的点在mid秒内被扫描到即可. 对于每个指针,若其左方没有待扫描标记,则它只需一路向右即可.若有需要扫描的标记,则有两种方式可以扫描,第一是先向左扫描 阅读全文
摘要:
题意:有N M的矩形,每个格点有一个柱子,每根柱子有高度c,允许蜥蜴经过这根柱子c次,开始有一些蜥蜴在某些柱子上,它们要跳出这个矩形,每步最大能跳d个单位,求最少有多少蜥蜴不能跳出这个矩形。 分析:转化为求最多有多少蜥蜴能跳出,则变为最大流问题。经典的建图思路,将每个柱子视作点,将其拆为入点和出点, 阅读全文
摘要:
题意:给出序列[a1..aN],整数M和k,求对1 M中的每个整数d,构建新的序列[b1...bN],使其满足: 1. $1 \le bi \le M$ 2. $gcd(b 1, b 2, …, b N) = d$ 3. 恰好有k个位置 $bi!=ai$ 求对每个d,有多少种满足条件的序列 分析:对 阅读全文
摘要:
题意:N个人要参加一个局,每个人有自己的好朋友,如果他的好朋友来,他才有可能来。N个人的关系不够成环。Q次查询,问若x来了,y是否肯定来。 分析:若点y是x的祖先,则y肯定回来。一次dfs确定每个点覆盖的区间,若点x的dfs序在y的覆盖区间内,则y肯定会来。 include using namesp 阅读全文
摘要:
题意:有N个问题,解决问题i之前要先解决si个问题;每分钟只能解决一个问题;每分钟必须解决一个问题,否则比赛结束。结束时获得的得分是$\sum_{}{ai t+bi}$,i是解决的问题编号,t是解决该问题的时间。 分析:N不超过20,将解决问题的情况状压,用数组dp[i][s]表示第i个问题为最后解 阅读全文
摘要:
诶,比赛时差一点就debug出来了 阅读全文
摘要:
题意:$f(i):i$能拆分成两个数的乘积,且要求这两个数中各自都没有出现超过1次的质因子。每次给出n,求$\sum_{i=1}^{n}f(i)$ 分析:$1 \le n \le 2e7$,每次查询若都$O(n)$统计,肯定超时,必须打表。 类似打欧拉函数表的方式,对于数$d$以及素数$p$,$f( 阅读全文
摘要:
题意:N个点,M条带权有向边,求可以免费K条边权值的情况下,从点1到点N的最短路。 分析:K using namespace std; typedef long long LL; const int maxn =1e5+5; const LL INF =(1ll rhs.d;} }; LL dist 阅读全文
摘要:
题意:有N个人参加选举,有M个条件,每个条件给出:i和j竞选与否会只要满足二者中的一项即可。问有没有方案使M个条件都满足。 分析:读懂题目即可发现是2 SAT的问题。因为只要每个条件中满足2个中的一个即可,因此将人i拆成 点i表示不竞选,和点i+N表示竞选,根据合取式的满足条件建图跑Tarjan。 阅读全文
摘要:
题意:求$1 N(1\le N \le 1e18)$中,能表示成$M^k(M 0,k 1)$的数的个数 分析:正整数p可以表示成$p = m^k = m^{r k'}$的形式,其中k'为素数。枚举幂k,求出满足$p^k\le N$的最大的$p$,则对于当前的$k$,任意小于$p$的正整数$p'$,都 阅读全文