[题解]CodeForces#290(div1)

开题之后发现做过div2的QwQ

A Fox And Names

B Fox And Jumping

题目描述

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

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

(1leq n leq 300,1leq a_ileq 10^9,1leq c_ileq 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的环,使得任意相邻的两个数之和为质数

(1leq n leq 100)

分析

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

原文地址:https://www.cnblogs.com/SCL123/p/11807207.html