补题大全
文章平均质量分 51
重生之我会拧瓶盖
上岸
展开
-
AtCoder Beginner Contest 236 题解
A和B和C纯语法题A、#include <iostream>#include<algorithm>#include<cstring>#include<cmath>using namespace std;typedef long long LL; int main(){ string s; cin>>s; int l,r; cin>>l>>r; swap(s[l-1],s[r-1原创 2022-01-23 21:40:54 · 816 阅读 · 2 评论 -
HHKB Programming Contest 2022(AtCoder Beginner Contest 235)题解
A、a题模拟一下#include<iostream>#include<algorithm>#include<cstring>#include <cmath>#include<vector>using namespace std;int main(){ int n; scanf ("%d",&n); int a = n/100; int b = (n-a*100)/10; int c = n%10; cout&l原创 2022-01-15 21:41:35 · 454 阅读 · 1 评论 -
Codeforces Round #765 (Div. 2) 题解
A、题目前三段都是废话还死绕。。。。题意:给定一组数,将两个单词之间的距离表示为这些单词不同的位置的数量。例如,10012和1100之间的距离(在二进制中)等于2,因为这些单词在第二个和第四个位置有不同的字母,从左到右计数。题目让构造一个数,使得该数和所有数的距离和最小。**思路:**我们可以存所有数每一位是1的个数,比较数每一位取0或1的贡献,谁小,那一位取啥。#include<iostream>#include<algorithm>#include<cstrin原创 2022-01-12 22:24:04 · 525 阅读 · 1 评论 -
AtCoder Beginner Contest 234 题解
A、题意明了不用思考直接模拟#include<iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long LL;LL cul(LL x){ return x*x+2*x+3;}int main(){ LL n; scanf ("%lld",&n); printf ("%lld",cul(cul(cul(n)+n)+cul(cul(原创 2022-01-08 22:01:06 · 681 阅读 · 1 评论 -
AtCoder Beginner Contest 233 题解
写这篇博客离做比赛的时间太长了,前两题题意直接过了,这两道好写A、#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ int x,y; cin>>x>>y; if (x>=y) cout<<0<<endl; else cout<<(y-x+9)/10<&l原创 2022-01-02 20:48:18 · 439 阅读 · 0 评论 -
Codeforces Round #752 (Div. 2)补题题解
A题目描述:插入K个数,位置随意,使得最终每个数的下标大于等于下标所对应的值。打印K的值思路:不用思考直接模拟+_+#include<iostream>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int N = 110;int mh[N];int main(){ int t; scanf ("%d",&t);原创 2021-12-04 16:51:13 · 763 阅读 · 1 评论 -
Codeforces Round #750 (Div. 2)A-F1补题题解
A**题目描述:**有 a 首 1分钟的歌,b 首 2 分钟的歌,c首 3 分钟的歌。要分在两场音乐会,问最小的差是多少。这道题的关键是题上说a,b,c,均不为0,这样的话三种歌总能被独立的分在两场音乐会因为2、3+1都能被2整除,这样最后两场音乐会的差值一定是0或1,答案为sum&1.#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using n原创 2021-11-21 20:08:14 · 334 阅读 · 1 评论 -
2021CCCC天梯赛L2题解
L2第一题:包装机大体题意是给筐和轨道的容量,然后经过一系列操作后输出流水线上的物品。轨道的操作就像队列,筐的操作符合栈的特性。理解题之后我们就知道了,这是一道模拟送分题,开始加速操作他把。#include <iostream>#include <cstring>#include <algorithm>#include <queue>#include <stack>using namespace std;const int N原创 2021-05-08 20:07:45 · 571 阅读 · 0 评论 -
2021年CCCC天梯赛L3 还原文件题解
题目如下一份重要文件被撕成两半,其中一半还被送进了碎纸机。我们将碎纸机里找到的纸条进行编号,如图 1 所示。然后根据断口的折线形状跟没有切碎的半张纸进行匹配,最后还原成图 2 的样子。要求你输出还原后纸条的正确拼接顺序。图 1 纸条编号图 2 还原结果输入格式输入首先在第一行中给出一个正整数 N,为没有切碎的半张纸上断口折线角点的个数;随后一行给出从左到右 N 个折线角点的高度值(均为不超过 100 的非负整数)。随后一行给出一个正整数 M,为碎纸机里的纸条数量。接下去有 M 行,其中原创 2021-05-08 20:18:34 · 1021 阅读 · 0 评论 -
寻找旋转数组的最小数字
这个是基础版把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个升序的数组的一个旋转,输出旋转数组的最小元素。例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为 1。数组可能包含重复项。注意:数组内所含元素非负,若数组大小为 0,请返回 −1。样例输入:nums = [2, 2, 2, 0, 1]输出:0看到这种题后,可以通过画图进行分析寻找规律。数组是递增的,旋转一般情况是从数组中间断开进行旋转,特殊情况是从数组末尾进行断开,原创 2021-04-08 12:14:02 · 212 阅读 · 0 评论 -
砝码称重()
题目如下:你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。请你计算一共可以称出多少种不同的正整数重量?注意砝码可以放在天平两边。输入格式输入的第一行包含一个整数 N。第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN。输出格式输出一个整数代表答案。数据范围对于 50% 的评测用例,1≤N≤15。对于所有评测用例,1≤N≤100,N 个砝码总重不超过 105。输入样例:31 4 6输出样例:10样例解释能称出的 10 种重量是:1、2、3原创 2021-05-24 17:40:46 · 391 阅读 · 0 评论 -
好因子的最大数目
首先先看一个引言,一道整数拆分问题,题目如下:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。这道题可以用到数学导数求极值的方法推出性质,为使乘积最大要尽可能的分出尽可能的3,证明链接如下证明传送门好因子的数目题意:题目链接给你一个正整数 pr原创 2021-06-01 15:55:13 · 257 阅读 · 0 评论 -
最后一块石头的重量 II
题在确定思路后要反复验证,代入各种情况去试试,这道题我认为就是一个贪心的题,并且代入两种情况过了就直接写了。但是到最后有差不多10%用例通不过,思路完全错误,这是道DP的题。题目链接++++++++++++++++++++++++++++++题目为:有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那原创 2021-06-09 20:48:48 · 224 阅读 · 3 评论 -
leetcode第238场周赛最高建筑高度
当时看见这道题感觉根本无从下手,数据量这么大,后来看了大佬的讲解视频后才知道这是线性DP。感觉这道题对解题思路的拓展很有用,把题解敲了一遍,研究研究搬过来任意一栋楼的最大高度受限于从左开始受限制的楼的高度以及从右开始受限制的楼的高度,因此预处理出来:f[i]f[i]:从左开始到第ii条直线的截距最小值g[i]g[i]:从右开始到第ii条直线的截距最小值class Solution {public: int maxBuilding(int n, vector<vector<in原创 2021-05-08 20:28:39 · 236 阅读 · 0 评论 -
动态规划例题广告投放
题目描述现在有一档综艺节目即将在网络上播出,总共会有 n 集,节目会按顺序逐集播出。节目组决定在某些集节目中投放广告。节目最初播出时,会有 m 名观众观看。若第 i 集投放有广告,记此时还剩有 c 名观众观看,则会产生 c⋅pi 的收益;但播出后则会让观众的人数变为c′=⌊c/di⌋,即第 i+1 集只会剩有 c′ 名观众观看。如果在第 i 集没有投放广告,则不会产生收益,观众人数也不会变化。请你帮助节目组计算一下各种可能的方案中,最大的收益和。输入第一行,两个整数 n 和 m (1≤n,m≤10原创 2021-05-20 19:50:33 · 632 阅读 · 6 评论 -
DP简单分组动态规划例题
最近连着碰见分组动态规划的题,所以我把这两道收集下来,分析一下。先看第一道,题意如下。题目链接在此**************+给定 n 个整数 a1,a2,…,an。现在,请你从中挑选一些数,并将选出的数进行分组。要求:选出的数最多划分为 k 组(至少 1 组)。同一组内,任意两数之差的绝对值不超过 5。所选出的数尽可能多。请问,最多可以选出多少个数进行分组?输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 a1,a2,…,an。输出格式输出一个整数,表示可以选出原创 2021-06-02 20:09:44 · 400 阅读 · 0 评论 -
统计特殊子序列数目(0,1,2)DP
今天参加Nordic Collegiate Programming Contest 2020,发现这个G题和上周力扣的周赛的第三道题一模一样,我都怀疑农大的参加完周赛直接改的这个题。不过由于英语问题,我读错题了,我第一次知道了must have 是一定是的意思,这个单词如果按照必须有这个意思跟周赛的题一模一样,可惜大意失荆州。先上力扣周赛题题目链接特殊序列 是由 正整数 个 0 ,紧接着 正整数 个 1 ,最后 正整数 个 2 组成的序列。比方说,[0,1,2] 和 [0,0,1,1,1,2] 是特原创 2021-08-03 18:22:34 · 224 阅读 · 1 评论 -
2020 ICPC Asia Taiwan Online Programming Contest C Circles
这道题真是忽略了过程就会错,以后再也不一有点思路直接写了。题目链接++++++++++++++++++++++++&&&&& 题意大体是刚开始给你n个圆心,游戏开始后每个圆的半径开始以相同的速度增长,当一个圆碰到另一个圆时圆停止增长。这样的话,随着圆的增长其他圆的半径也会被限制(这是动态变化的,肯定最小的两个圆先停止增长,然后其他圆心半径变化,每次需找最小值,可以用优先队列),并不是找到距离每个圆心最近的那个圆心就是停止生长的位置,题目如下There are原创 2021-08-10 20:19:59 · 394 阅读 · 0 评论 -
很妙的贪心(F2. Nearest Beautiful Number (hard version))
题目大意是:给定一个数,定义k为这个数各位上的数字不重复的个数,让你求大于等于这个数的最小的一个数并满足k<=题目中所给的k。很巧妙的贪心,经过分析每次从个位向高位枚举判断能修改的最低位然后加1,重复这个过程可得到答案。#include <bits/stdc++.h>using namespace std;int calc(int x) { int t = 0; for (; x; x /= 10) t |= 1 << (x % 10); return _.原创 2021-08-21 20:33:34 · 113 阅读 · 0 评论 -
2021CCPC网络赛榜单
部分题目题解链接++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++原创 2021-08-28 17:24:11 · 3796 阅读 · 3 评论 -
2021CCPC网络赛题解加总结
1001 :切电线题目大意是在街道上有无穷多个街灯编号从1开始,街灯之间是用电线相连的。但是连线是有规则的,如果街灯的编号 x 是偶数,则它与编号为 x / 2相连。如果街灯的编号 x 是奇数,那么它和 3*x+1 相连,给定n,问你站在街灯编号为 n 和 n+1 之间能剪掉多少根电线。(左边的街灯编号<=n,右边的街灯编号>n)。数据范围如下:由图易看出暴力枚举那一定会超时,不过一般没人会用。只需要分情况算出奇数连的线和偶数连的线相加就行了,需要找几个例子去推一下。#include原创 2021-08-31 19:51:20 · 5560 阅读 · 3 评论 -
CCPC网络赛重赛榜单(重赛)
原创 2021-10-10 17:07:07 · 1270 阅读 · 1 评论 -
2021CCPC网络赛重赛补题1
题目大意是给定x,让你求比x第一个大的质数和第二个质数和除二向下取整。看看代码我真哭了,当时想线性筛欧拉筛,真麻!!!!!!!#include <iostream>#include <cstdio>using namespace std;int main(){ int T; cin >> T; while (T --) { long long x; scanf("%lld", &x); .原创 2021-10-10 17:15:46 · 443 阅读 · 1 评论 -
2021 CCPC新疆省赛补题部分题解
A. balloon题目大意:潇湘有小孩和mm的气球。今天下课后,我的朋友们要去抓这些气球。每个气球在墙上都有一定的高度。只有当孩子跳起来时,他们的手所能达到的高度大于或等于气球的高度,孩子才能拿起气球。为了公平起见,老师让跳得低的孩子先摘,跳得高的孩子再摘。孩子们是非常贪心的,每个孩子在摘气球的时候都会摘下所有他能摘到的气球。巧合的是,孩子们在跳起来的时候可以达到不同的高度,这样同样高度的孩子在跳起来之后就不会有纠纷了。简单的模拟,直接上代码#include<iostream>原创 2021-11-16 19:14:34 · 1378 阅读 · 2 评论 -
2021CCPC河南省赛补题(关于打铁那件事)以后DP估计会伴随我一辈子
#include <iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long LL;const int N = 5e4+10;char s[N];int t;LL f[N][2];int main() { scanf ("%d",&t); while (t--) { memset(f,0,sizeof f.原创 2021-11-02 16:56:30 · 257 阅读 · 2 评论 -
2021辽宁大学生程序设计省赛完美主义(线段树)
题目链接++++++++++++++++++++++++++++++++++#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N = 3e5 + 10;int n, q;int a[N];struct Node { int l, r; bool flag; int mx, mn;}tr[N * 4];void pushup(No.原创 2021-10-27 15:23:43 · 196 阅读 · 0 评论 -
2020CCPC河南省赛二进制与、平方和
看见线段树题,先看是不是区间修改,然后看看能否转化为单点修改,用懒标记实在太难调,可以转化的题我现在遇到的就是可以在线段树存差分数组实现区间加法的单点修改,这道题是本身区间可能就不用去修改。#include<iostream>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int MOD = 998244353;const int N = .原创 2021-10-24 17:20:21 · 242 阅读 · 1 评论 -
力扣第61场双周赛
第一题暴力枚举class Solution {public: int countKDifference(vector<int>& nums, int k) { int n = nums.size(); int res = 0; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) if (abs(nums[i]原创 2021-09-27 09:18:26 · 104 阅读 · 0 评论 -
力扣 LCP 42. 玩具套圈 (数学公式反推)
题意场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,toys[i] 以 [xi,yi,ri] 的形式记录了第 i 个玩具的坐标 (xi,yi) 和半径 ri。小扣试玩了一下,他扔了若干个半径均为 r 的圈,circles[j] 记录了第 j 个圈的坐标 (xj,yj)。套圈的规则如下:若一个玩具被某个圈完整覆盖了(即玩具的任意部分均在圈内或者圈上),则该玩具被套中。若一个玩具被多个圈同时套中,最终仅计算为套中一个玩具请帮助小扣计算,他成功套中了多少玩具。注意:输入数据保证任意两个玩具的原创 2021-09-14 11:00:27 · 1233 阅读 · 2 评论 -
力扣杯秋季编程大赛个人赛T2心算挑战(枚举所有情况不重不漏)
题目「力扣挑战赛」心算项目的挑战比赛中,要求选手从 N 张卡牌中选出 cnt 张卡牌,若这 cnt 张卡牌数字总和为偶数,则选手成绩「有效」且得分为 cnt 张卡牌数字总和。给定数组 cards 和 cnt,其中 cards[i] 表示第 i 张卡牌上的数字。 请帮参赛选手计算最大的有效得分。若不存在获取有效得分的卡牌方案,则返回 0。示例 1:输入:cards = [1,2,8,9], cnt = 3输出:18解释:选择数字为 1、8、9 的这三张卡牌,此时可获得最大的有效得分 1+8+9=1原创 2021-09-12 20:33:59 · 364 阅读 · 0 评论 -
力扣第257周赛T4数组的最大公因数排序(并查集+质因数分解)
分析:最大公因数不为一的可以交换,而交换具有传递性。a和b可以交换,b和c可以交换则a和c也能交换。所以可交换的集合符合并查集性质。因为遍历n的平方合并会超时,可以采用分解质因数并合并根据公因数。题目链接在此+++++++++++++++++++++const int N = 1e5+10;class Solution {private: int f[N];public: int find (int u) { if (u!=f[u]) f[u]=find(.原创 2021-09-05 16:48:03 · 310 阅读 · 1 评论 -
2021中国大学生程序设计竞赛(CCPC)- 压力测试赛第1005题Easy Math Problem速过
仔细分析就会看出规律,这道题真唬人。#include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;int main(){ int t; scanf("%d", &t); while (t--) { LL p; scanf("%lld", &p);.原创 2021-09-04 20:32:40 · 295 阅读 · 1 评论