杭电多校(五)2019.08.05--暑假集训
【HDU 6624】
【HDU 6625】
【HDU 6626】
【HDU 6627】
【HDU 6628】
【HDU 6629】
【题目大意】求一个字符串每个后缀和字符串的最长前缀长度的和
【解决思路】扩展KMP裸题(居然卡cin,cout qwq)
#include<cstdio> #include<string> #include<iostream> #include<vector> #include<cstring> #include<algorithm> #define ll long long using namespace std; const int MAXN = 1000010; int z[MAXN]; ll query(string s) {ll ans = 0;int n = (int)s.length();for (int i = 1, l = 0, r = 0; i < n; ++i) {if (i <= r) z[i] = min(r - i + 1, z[i - l]);while (i + z[i] < n && s[z[i]] == s[i + z[i]]) ++z[i];if (i + z[i] - 1 > r) l = i, r = i + z[i] - 1;}for (int i = 1; i < n; i++){if (z[i] == 0)ans++;else{if (z[i] + i == n)ans += z[i];elseans += z[i] + 1;}//printf("%d ", z[i]); }return ans; } string s; int main() {int T;ios_base::sync_with_stdio(0);cin >> T;while (T--){cin >> s;memset(z, 0, sizeof(z));cout<< query(s)<<'\n';}return 0; }
View Code
【HDU 6630】
【题目大意】给定N,x,y,令x在第一位,y在最后一位,中间数字排列相邻数字绝对值之差不大于2,输出有多少种排列方式
【解决思路】x和y之间的数字一定会移到最底然后移到最上,再移到y,中间的部分会由向上移3格或移1格确定,所以就可以对答案进行递推
递推式如下:dp[i]=dp[i-1]=dp[i-3]
#include<iostream> #include<vector> #include<cstdio> #include<cstring> #include<iterator> #include<algorithm> const int maxn = 1e5 + 10; long long dp[maxn]; int main() {using namespace std;int T;cin >> T;while (T--){int N, x, y;cin >> N >> x >> y;if (x > y)swap(x, y);for (int i = x - 5; i <= x + 5; i++){if (i < 0)continue;dp[i] = 0;}if (x == 1){dp[x] = 1;for (int i = x + 1; i <= y; i++){if (i - 3 < 0)dp[i] = dp[i - 1];elsedp[i] = (dp[i - 1] + dp[i - 3]) % 998244353;}}else{dp[x + 1] = 1;for (int i = x + 2; i <= y; i++){dp[i] = (dp[i - 1] + dp[i - 3]) % 998244353;}}if (y == N)cout << dp[y] << "\n";elsecout << dp[y - 1] << "\n";} }
View Code
【HDU 6631】
【HDU 6632】
【HDU 6633】
转载于:https://www.cnblogs.com/rentu/p/11304887.html
杭电多校(五)2019.08.05--暑假集训相关推荐
- 2019年杭电多校第一场 1001题blank(DP)HDU6578
2019年杭电多校第一场 1001题blank(DP)HDU6578 解决思路,开一个DP数组来存储0 1 2 3四个字符最后出现的位置,并且在DP中已经==排好序==. DP开四维,DP[i][j] ...
- 2019杭电多校 第七场 Kejin Player 6656(求期望值)
2019杭电多校 第七场 Kejin Player 6656(求期望值) 题目 http://acm.hdu.edu.cn/showproblem.php?pid=6656 题意 给你n,q.表示有n ...
- 2019暑期杭电多校HDU6599 I Love Palindrome String
2019杭电多校HDU6599 I Love Palindrome String 题目链接 I Love Palindrome String Time Limit: 4000/2000 MS (Jav ...
- 【2019杭电多校训练赛】HDU6681 / 1002-Rikka with Cake 题解(扫描线)
[2019杭电多校训练赛]HDU6681 / 1002-Rikka with Cake 题解 题意 思路 代码 题目来自于:HDU6681 Rikka with Cake 题意 题目的大意是给定你一个 ...
- 2019杭电多校第9场1002 Rikka with Cake HDU6681
2019杭电多校第9场1002 Rikka with Cake HDU6681 题意:给你若干个点按上下左右切割平面,最后问平面内有几块被切割开来. 解法1:红黑树+思维+贪心 A:根据欧拉定理可以得 ...
- 2022杭电多校(五)
2022杭电多校(五) 文章目录 2022杭电多校(五) 一.比赛小结 二.题目分析及解法(基础题) 1003.Slipper 1006.BBQ 1007.Count Set 1010.Braggin ...
- 2019.7.29 杭电多校第三场小结
index > 杭电多校第三场 题号 标题 AC 做法 状态 6603 Azshara's deep sea (51/150)34.00% 6604 Blow up the city (213/ ...
- 杭电多校联赛2017年总结
杭电多校联赛2017年总结 时间确实过得挺快,一个月很快结束,说实在的,一个月了,每次比赛都是混两道签到题,然后就开始挂机了,确实很不甘心,看着联赛的排名,确实感觉,和强校之前的差距还是很大的,P ...
- 2022杭电多校赛第八场
2022杭电多校赛第八场 文章目录 2022杭电多校赛第八场 1004.Quel'Thalas 1001.Theramore 1011.Stormwind 1008.Orgrimmar 1005.Ir ...
- 杭电多校第六场个人补题6 7 9 10 12
杭电多校第六场个人补题6 7 9 10 12 6 题意 给定一棵有n结点的树,点权为1~n,求对所有结点子树的mex操作和的最大值 思路 其实就是从最底部开始网上找,由于0是唯一的一个,所欲最好给在最 ...
最新文章
- loadrunner 如何做关联
- Two Sum [easy] (Python)
- linux——数据库mariadb的基础操作
- [已解决] java 增加 ALPN支持
- 去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!
- Android官方开发文档Training系列课程中文版:Activity测试之测试环境配置
- Oracle12c部署,允许远程访问
- 如何通过投掷一枚硬币产生各种概率
- 瑞士军刀Netcat的使用方法
- markdown一边写一边预览_MarkDown使用笔记
- 锐捷长ping_【交换机】S8606--s5750E互连接口ping大包(length=18024)会丢包
- openrefine的 General Refine Expression Language(GREL)
- 多一个渠道,多一份收益!
- 用python画出逻辑斯蒂映射(logistic map)中的分叉图
- 使用 pytesseract 实现PDF中文识别(附源码及解释)
- 我的世界服务器mcyc.win怎么验证,RTX 2060 光线追踪效果逆天,让《我的世界》变仙境!华硕天选游戏笔记本体验教程...
- .Net Task常见问题
- 京东物流-三维装箱(记录)
- 基于STM32的门禁系统源码分享
- 0基础快速入门CSS技术栈(6)—图解详细阐述说透CSS的浮动及应用、浮动的扩展及清除浮动和详解快速·1photoshop切图(附详细案例源码解析过程)2021-01-07更新