c++
文章平均质量分 61
Reinhart_L
这个作者很懒,什么都没留下…
展开
-
PTA 挖地雷
题目描述:在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,且保证都是小序号地窖指向大序号地窖,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任意一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。输入格式:第一行:地窖的个数;第二行:为依次每个地窖地雷的个数;下面若干行:xi yi 表示从xi可到yi,xi<yi。原创 2021-10-18 13:22:09 · 1427 阅读 · 1 评论 -
第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)E.Evil Coordinate (分类讨论+模拟)
https://ac.nowcoder.com/acm/contest/21739/E这题有更简单的做法(枚举UDLR全排列),我用这个分类讨论的方法折腾了2个半小时才终于AC…思路:1.首先我们可以想到,给定了一个走法的序列,不管这个序列的排列是怎样,它的终点一定确定了.所以炸弹(mx,my)如果在起点(0,0)或终点(x,y)那结果肯定是ImpossibleImpossibleImpossible.2.还有一种ImpossibleImpossibleImpossible的情况就是当X原创 2021-10-13 23:03:51 · 584 阅读 · 0 评论 -
PTA 租用游艇问题
题目描述长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n所需的最少租金。输入格式:第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的第1到第n-1 行,第i行表示第i站到第i+1站,第i+2站, … , 第n站的租金。输入样例:35 157输原创 2021-10-12 23:48:10 · 589 阅读 · 0 评论 -
CCPC 2021 网络预选赛 重赛 hdu 7131-Nun Heh Heh Aaaaaaaaaaa (计数dp-公共子序列模型)
http://acm.hdu.edu.cn/showproblem.php?pid=7131题意给定一个序列s,求其[前缀是????????????????????????????????????,后缀是>=1个a]的子序列个数题解先求出子序列为nunhehheh的个数,定义dp(i,j)为s的前i个字符中和nunhehheh匹配到第j个个数.然后预处理出i后面有多少个a,记为a[i],对于每个dp(i,9)乘2a[i]2^{a[i]}2a[i]再相加即可得到所有方案数代码#include原创 2021-10-11 00:06:28 · 575 阅读 · 0 评论 -
AtCoder Beginner Contest 218-ABCDEF 题解
https://atcoder.jp/contests/abc218/tasksA - Weather Forecast水题#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<stack>#include<map>#includ原创 2021-09-12 19:17:37 · 554 阅读 · 0 评论 -
Educational Codeforces Round 113 C. Jury Meeting (思维+组合数学)
https://codeforces.com/contest/1569/problem/C题意:n个数,每经过一个数它就-1,如果当所有数减完的时候没有一个数连续减了两次那这样一个序列就叫好序列,求所有好序列的数量,答案mod998244353题解:我们可以发现不管n是多少,到最后我们都只用看只剩下最后两个数的情况,而剩下的两个数肯定是最大数和次大数.所以我们可以分以下三种情况讨论:1.最大数=次大数和位置无关,所有排列的序列都是好序列,答案为n!2.最大数>=次大数+2所有序列都不原创 2021-09-09 13:42:03 · 377 阅读 · 0 评论 -
Atcoder Beginner round-E Amusement Park (思维 | 二分)
题意:给N个点,K次访问,每个点有一个值,每个点可以访问无限次,每次访问就可以获得其值,但每访问一次这个点的值就会减1.最大化K次访问后值的总和.做法1:(思维+模拟)我们都可以想到要优先取最大的值,所以第一步是将数组从大到小排序,但我们不能一直取最大的那个值,因为它是随着取得次数减小的.所以我们能想到把最大的数取到和第二大的数一样,然后再取第二大的数,将其取到和第三个大的数一样.eg.10 9 5 4 3 -> 9 9 5 4 3 -> 5 5 5 4 3 -> 4 4 4 4原创 2021-09-08 15:18:56 · 361 阅读 · 0 评论 -
The 15th Chinese Northeast Collegiate Programming Contest M. Master of Shuangpin
直接模拟 分情况讨论就好 如果会一些string处理的库函数(eg. substr)处理起来会比较方便代码有注释#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<stack>#include<map>#include<un原创 2021-09-04 16:55:40 · 482 阅读 · 0 评论 -
ZOJ - 3981 Balloon Robot 2017CCPC秦皇岛A题
ZOJ - 3981 Balloon Robot 2017CCPC秦皇岛A题https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370121#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#includ原创 2021-09-01 13:36:52 · 378 阅读 · 0 评论 -
CodeForces Round #730 D1. RPD and Rap Sheet (Easy Version)题解
Codeforces Round #730 (Div. 2)题意:t组数据,每组给一个n和k,(easy version里面k=2) 每一次系统会输入一个初始的密码(初始密码是一个在[0,n−1][0,n-1][0,n−1]的随机值),你可以最多输出n次询问,如果猜对了密码系统会输入1,否则输入0.但密码不是不变的,每次会根据如下公式变化旧密码⨁新密码=询问值旧密码\bigoplus新密码=询问值旧密码⨁新密码=询问值题解:设初始密码为X,第i次询问值为PiP_iPi,新密码为Y根据异或的原创 2021-07-08 13:22:05 · 525 阅读 · 1 评论 -
背包问题汇总(详细证明+实现)
背包问题汇总0-1背包题目:https://www.acwing.com/problem/content/2/分析:dp[i][j]意思是只放前i个物品在总体积是j的情况下的物品的贡献dp[i][j]意思是只放前i个物品在总体积是j的情况下的物品的贡献dp[i][j]意思是只放前i个物品在总体积是j的情况下的物品的贡献易得状态方程为:dp[i][j]=max(dp[i−1][j],dp[i−1][j−v[i]+w[i]])dp[i][j]=max(dp[i-1][j],dp[i-1][j-原创 2020-11-21 10:39:22 · 851 阅读 · 0 评论 -
# AtCoder-agc017 B - Moderate Differences 题解
AtCoder-agc017 B - Moderate Differences 题解https://atcoder.jp/contests/agc017/tasks/agc017_b?lang=en题意:N个格子排成一行,第一个元素A和最后一个元素B的值已经给出,中间的格子是空的。你需要在每个空格子中填上一个数字,使得任意两个相邻的数满足abs(a[i+1]−a[i])∈[C,D]abs(a[i+1]-a[i])\in[C,D]abs(a[i+1]−a[i])∈[C,D],如果存在这样一个序列输出YE原创 2020-11-20 00:47:30 · 199 阅读 · 0 评论 -
编辑距离问题(动态规划)
编辑距离问题参考:https://blog.csdn.net/sinat_31790817/article/details/78376402?utm_medium=distribute.pc_relevant.none-task-blog-title-5&spm=1001.2101.3001.4242设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的原创 2020-11-01 15:13:10 · 440 阅读 · 0 评论