Codeforces Round #460 (Div. 2)
A
签到
B
题意
定义:一个数(没有前缀0)的各个位数之和为10位“perfec”数,问第k个“perfect”数位多少(1<=k<=1e5)
分析
一开始找错了,以为会超过1e9,通过理性的分析不难发现,最大不超过1e9,强行打个表即可
C
签到
D
题意
n个点m条边的有向图,每个点有一个数字(可以重复,0~25),定义一条路径的权值为该路径出现数字最多的数字的次数,若有环输出-1,否则输出最大值(1 ≤ n, m ≤ 300 000)
分析
思路:首先直接dfs肯定不行,最坏情况n^2,
问题就在于:如何记忆的记录已经搜索的路的每个数字的次数
解决:dp思想,每个点记录下到改点的所有数字的次数即可
正解:拓扑排序+dp
拓扑排序的时候dp即可
定义:dp[i][j]:第i个点数字j的最大值
转移 :直接从上一个节点到当前节点转移即可
时间复杂度(26*m)
#include<bits/stdc++.h> #define ll long longusing namespace std;const int maxn = 300000+2;int num[maxn]; struct node {int to,next;}edge[maxn]; int cnt; int head[maxn];void addedge(int u, int v) {++cnt;edge[cnt].to=v;edge[cnt].next=head[u];head[u]=cnt; }bool flag; int n, m; string s; int dp[maxn][26]; int answer=0; queue<int>q; int deep[maxn];void topsort() {int ans=0;while(!q.empty()){ans++;int now=q.front();q.pop();for(int i=head[now];i!=0;i=edge[i].next){int v=edge[i].to;deep[v]--;if(!deep[v])q.push(v);for(int j=0;j<26;j++){if(j==num[v])dp[v][j]=max(dp[v][j],dp[now][j]+1);elsedp[v][j]=max(dp[v][j],dp[now][j]);answer=max(answer, dp[v][j]);}}}if(ans<n)flag=false;}int main() {flag=true;scanf("%d%d", &n, &m);cin>>s;for(int i=0;i<n;i++){num[i+1]=s[i]-'a';}int u,v;for(int i=0;i<m;i++){scanf("%d%d", &u, &v);addedge(u,v);deep[v]++;}for(int i=1;i<=n;i++){if(deep[i]==0){q.push(i);dp[i][num[i]]++;}}topsort();if(!flag)printf("-1\n");elseprintf("%d\n", answer);return 0; }
View Code
E
题意
n*a^n = b (mod p) (1<=n<=x),给出a,b,x,p(p为素数),问满足上式的n的个数 (2 ≤ p ≤ 106 + 3, 1 ≤ a, b < p, 1 ≤ x ≤ 1012)
分析
费马小定理应用
转载于:https://www.cnblogs.com/Superwalker/p/8407712.html
Codeforces Round #460 (Div. 2)相关推荐
- [Codeforces]Codeforces Round #460 (Div. 2)
Supermarket 找最便宜的就行 Solution Perfect Number 暴力做 Solution Seat Arrangement 注意当k=1时,横着和竖着是同一种方案 Soluti ...
- Codeforces Round #460 (Div. 2): D. Substring(有向图)
题意:给你一个有向图,每个节点都有一个字母,一条路径(可以重复经过点或边)的值为出现次数最多的字母出现次数,求出路径的最大值(如果无穷大输出-1) 思路:有环就是-1,有向图判环可以用DPS,也可以B ...
- Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)
题意:给出a, b, p, x,求有多少个n满足①n*a^n%p==b:②n<=x 思路:先要知道一个很简单的性质:a^n%p的值一定存在循环节(n=0就进入循环),且周期T一定是p-1的约数 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...
最新文章
- 图灵四月书讯 ——经典与技术前沿的融合
- 1.2 离散时间信号-采样
- Redis 6.0 新特性,多线程连环 13 问!
- Electron中 提示:Uncaught ReferenceError: process is not defined
- paramiko 使用总结(SSH 操作远端机器)
- 计算机网络实验ifconfig,《计算机网络》操作系统网络配置实验.doc
- 怎么在自己的网站上显示其它网站_自己做网站要怎么选域名?
- GIS实战应用案例100篇(十六)-CASS道路横断面线,如何折线变直线?
- 三、Python第三课——Python中数字的用法及编码原则(Python禅意)
- C语言printf 和 scanf 用法
- python编译成class_python class
- 传递情感贺卡海报,你知道怎么设计么?让设计更简单,从临摹PSD模板开始
- 删除mysql临时文件_mysql自动备份数据库与自动删除临时文件
- OpenCV笔记(十八)——使用霍夫变换检测圆圈
- 世界杯正在成为鸡肋!球迷越来越像傻瓜!
- 机器学习之线性回归(机器学习基石)
- 修复小米路由器mini的USB口
- winPE4.0制作过程
- TPC TPCC TPMC 计算机性能衡量指标
- Excel转Json 绿色工具