Codeforces Round #460 (Div. 2) 919 笔记

A. Supermarket

输入n,m, (1?≤?n?≤?5?000, 1?≤?m?≤?100)表示n组价格数据和目标重量m

接下来n组价格数据,表示为a元b千克,每组无限取

求最小花费

B. Perfect Number

输入k,1?≤?k?≤?10?000,求第k个完美数

完美数定义为数位和=10

(tutorial中说难度可以升级为k<1e18)->用数位dp可解

C. Seat Arrangements

输入n,m,k (1?≤?n,?m,?k?≤?2?000)表示nm的课室,有k人

要求k人横着坐或竖着坐,求方案数

输入.表示空位,表示已坐

(如果是任意连着坐,难度好像很大?)

D. Substring

输入n,m <3e5 表示n点m条有向边

第二行输入由小写字母形成的字符串,表示每个点上的字符

接着输入边

路径的值为路径上出现最多字母的个数,求路径的最大值,无穷输出-1

E. Congruence Equation

输入a,b,p,x (2?≤?p?≤?10e6?+?3, 1?≤?a,?b?<?p, 1?≤?x?≤?10e12).

求多少个n(1<=n<=x)满足n(a^n)=b(mod p)(p是素数)

F. A Game With Numbers

A和B玩游戏,每人8张牌,每张牌的值为0到4,当轮到某人时,要从两人手中各拿一张牌a和b,要求ab!=0,然后用c=(a+b)%5替换掉自己拿的牌,如果有人手上全是0,就赢了。给出T组数据,每组给出两人手上各牌的值,给出谁先手,问在最优策略下,谁能赢,或者打平。

(1<=T<=1e5)


笔记(非题解):

A B 水题

C 横着、竖着暴力枚举即可

D 原先做法dp[i]表示当前i到之后路径上最大值,另用辅助数组d[i][j]表示i最优时颜色j的数目

实际上只要d[i][j]即可,表示到i时j的最大值,转移维护即可

是DAG用上法,有环则-1

E

  1. n%p的周期为p,
  2. a^n%p的周期为p-1,
  3. 整个左式的周期为p(p-1)

    由1知n=ip+j

    a^(p-1)%p=1

    令n=i(p-1)+j

    由欧拉降幂公式知a^n%p->a^(n%(p-1))%p->a^j%p

    (i(p-1)+j)a^j==b

    ->j-i==b/(a^j)

    ->i==j-b/(a^j)

    枚举j求i,求n,然后不断+p(p-1),判断是否ok即可

F 留坑

原文地址:https://www.cnblogs.com/Surrender/p/8759088.html

时间: 2024-10-08 00:40:42

Codeforces Round #460 (Div. 2) 919 笔记的相关文章

Codeforces Round #460 (Div. 2) 919A. Supermarket 919B. Perfect Number 919C. Seat Arrangements

这场cf有点意思,hack场,C题等于1的特判hack很多人(我hack成功3个人,上分了,哈哈哈,咳咳...) D题好像是树形dp,E题好像是中国剩余定理,F题好像还是dp,具体的不清楚,最近dp的题目好多,一会滚去学dp. 写A,B,C的题解. A. Supermarket time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

Codeforces Round #460 (Div. 2)_D. Substring_[dp][拓扑排序]

题意:一个有向图,每个结点 被赋予一个小写字母,一条路径的value等与这条路径上出现次数最多的字母的数目,求该图的最大value 比赛时,用dfs超时,看官方题解用的dp和拓扑排序,a--z用0-25表示,用dp[i][j]表示以第i个结点结尾的路径上第j个字母出现的次数 拓扑排序每排到一个点,就用该点的dp去更新与它相邻点的dp,最开始入度为0的点特殊处理了一下,dp过程中同步更新结果res 也复习了一下拓扑排序 #include<iostream> #include<cstdio&

Codeforces Round #460 (Div. 2)

A 签到 B 题意 定义:一个数(没有前缀0)的各个位数之和为10位"perfec"数,问第k个"perfect"数位多少(1<=k<=1e5) 分析 一开始找错了,以为会超过1e9,通过理性的分析不难发现,最大不超过1e9,强行打个表即可 C 签到 D 题意 n个点m条边的有向图,每个点有一个数字(可以重复,0~25),定义一条路径的权值为该路径出现数字最多的数字的次数,若有环输出-1,否则输出最大值 分析 思路:首先直接dfs肯定不行,最坏情况n^2

Codeforces Round #460 (Div. 2) B Perfect Number(二分+数位dp)

题目传送门 B. Perfect Number time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output We consider a positive integer perfect, if and only if the sum of its digits is exactly 1010. Given a positive integ

Codeforces Round #262 (Div. 2)460A. Vasya and Socks(简单数学题)

题目链接:http://codeforces.com/contest/460/problem/A A. Vasya and Socks time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Vasya has n pairs of socks. In the morning of each day Vasya has to put o

Codeforces Round #262 (Div. 2) 460B. Little Dima and Equation(枚举)

题目链接:http://codeforces.com/problemset/problem/460/B B. Little Dima and Equation time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Little Dima misbehaved during a math lesson a lot and the nas

Codeforces Round #262 (Div. 2) 460C. Present(二分)

题目链接:http://codeforces.com/problemset/problem/460/C C. Present time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Little beaver is a beginner programmer, so informatics is his favorite subjec

Codeforces Round #262 (Div. 2)解题报告

详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks   http://codeforces.com/contest/460/problem/A 有n双袜子,每天穿一双然后扔掉,每隔m天买一双新袜子,问最多少天后没有袜子穿.. 简单思维题:以前不注重这方面的训练,结果做了比较久,这种题自己边模拟边想.不过要多考虑trick ```c++ int main(){ i

Codeforces Round #428 (Div. 2)

Codeforces Round #428 (Div. 2) A    看懂题目意思就知道做了 #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a; i<=b; ++i) #define per(i,b,a) for (int i=b; i>=a; --i