[题解]CodeForces#290(div1)

开题之后发现做过div2的QwQ

A Fox And Names

B Fox And Jumping

题目描述

你希望遍历一个长度为无穷的环

\(n\)种卡片,你可以花费\(c_i\)的代价购买第\(i\)种卡片并可以无限次使用,每一次可以让你顺/逆时针跳\(a_i\)步,问是否存在一种方案,使得你可以遍历所有点,如果有,输出最小代价

\(1\leq n \leq 300,1\leq a_i\leq 10^9,1\leq c_i\leq 10^5\)

分析

我幼小呀

首先可以把问题简化为是否存在一种方案,使得\(\sum a_i*x_i=1\),其中,\(a_i\)是选了的那些卡片,\(x_i\)为任意整数

因为如果可以向某一个方向走1步,那么就可以遍历整个环,并且如果要遍历整个环,就必然要有一种方案可以向某个方向走一步

好了然后根据裴蜀定理的扩展,所有\(a_i\)\(gcd\)要为\(1\),那么直接\(dp\)就可以了

发现gcd的个数不会太多,可以用个map

C Fox And Dinner

题目描述

给出\(n\)\([2,100]\)的数,问能否把他们分成若干个大于等于3的环,使得任意相邻的两个数之和为质数

\(1\leq n \leq 100\)

分析

由于数值大于2,所以和为质数的两个数必然是一奇一偶。把所有的数分成奇偶两列,每一个数左右都有两个奇偶性和自己不同的数,那么从\(S\)到每个奇数点连\(2\)的边,从每个偶数点到 \(T\)\(2\)的边,跑网络流就OK啦

posted @ 2019-11-06 18:42  硫氯  阅读(103)  评论(0编辑  收藏  举报