- 博客(73)
- 收藏
- 关注
原创 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
812
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
452
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
523
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
678
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
438
原创 DP刷题总结
一、21CCPC省赛两道背包模型DP,真是白给的不能再明显了都做不出来。收集金币:限制条件可跳过一次LOSE求最多金币闯关游戏:滚动数组、有些状态不能转移链接+++++++++++++++++++++++++++++++++++++++二、关于分组的动态规划,每次决策时,该元素可不选或者加入该组,转移以整组转移链接+++++++++++++++++++++++++++++++++++++++三、统计特殊子序列数目(0,1,2)这是我在力扣上刷到的一类题目,正着出倒着出题都行。链接---
2021-12-12 13:33:54
2320
1
原创 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
760
1
原创 计组--数据通路
一、功能1、什么是数据通路?数据在功能部件之间传送的路径称为数据通路,路径上的部件称为数据通路部件,如ALU、通用寄存器等。2、数据通路的作用数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器。数据通路中专门进行数据运算的部件称为执行部件或功能部件;数据通路由控制部件控制。数据通路的功能是实现 CPU 内部的运算器与寄存器及寄存器之间的数据交换。二、基本结构数据通路的基本结构有 CPU 内部单总线方式、CPU 内部三总线方式和专用数据通路方式。1、CPU
2021-11-24 19:26:44
1810
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
331
1
原创 2021 CCPC新疆省赛补题部分题解
A. balloon题目大意:潇湘有小孩和mm的气球。今天下课后,我的朋友们要去抓这些气球。每个气球在墙上都有一定的高度。只有当孩子跳起来时,他们的手所能达到的高度大于或等于气球的高度,孩子才能拿起气球。为了公平起见,老师让跳得低的孩子先摘,跳得高的孩子再摘。孩子们是非常贪心的,每个孩子在摘气球的时候都会摘下所有他能摘到的气球。巧合的是,孩子们在跳起来的时候可以达到不同的高度,这样同样高度的孩子在跳起来之后就不会有纠纷了。简单的模拟,直接上代码#include<iostream>
2021-11-16 19:14:34
1374
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
256
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
192
原创 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
240
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
440
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
103
原创 Tire树模板
//trie树适用于快速存储和查询字符串数组#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 1e5+10;int son[N][26],idx,cnt[N];char s[N];void insert(char *mh){ int p=0; for (int i=0;mh[i];i++) { .
2021-09-16 20:57:18
136
2
原创 力扣 LCP 42. 玩具套圈 (数学公式反推)
题意场地外,小力组织了一个套玩具的游戏。所有的玩具摆在平地上,toys[i] 以 [xi,yi,ri] 的形式记录了第 i 个玩具的坐标 (xi,yi) 和半径 ri。小扣试玩了一下,他扔了若干个半径均为 r 的圈,circles[j] 记录了第 j 个圈的坐标 (xj,yj)。套圈的规则如下:若一个玩具被某个圈完整覆盖了(即玩具的任意部分均在圈内或者圈上),则该玩具被套中。若一个玩具被多个圈同时套中,最终仅计算为套中一个玩具请帮助小扣计算,他成功套中了多少玩具。注意:输入数据保证任意两个玩具的
2021-09-14 11:00:27
1228
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
361
原创 力扣第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
307
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
292
1
原创 2021CCPC网络赛题解加总结
1001 :切电线题目大意是在街道上有无穷多个街灯编号从1开始,街灯之间是用电线相连的。但是连线是有规则的,如果街灯的编号 x 是偶数,则它与编号为 x / 2相连。如果街灯的编号 x 是奇数,那么它和 3*x+1 相连,给定n,问你站在街灯编号为 n 和 n+1 之间能剪掉多少根电线。(左边的街灯编号<=n,右边的街灯编号>n)。数据范围如下:由图易看出暴力枚举那一定会超时,不过一般没人会用。只需要分情况算出奇数连的线和偶数连的线相加就行了,需要找几个例子去推一下。#include
2021-08-31 19:51:20
5474
3
原创 2021CCPC网络赛榜单
部分题目题解链接++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2021-08-28 17:24:11
3761
3
原创 很妙的贪心(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
112
原创 区间修改乘和加(理解懒标记的好例题)
#include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N = 1e5+10;int n,m,p;int a[N];struct Node{ int l,r; int sum,add,mul;}tr[N*4];void pushup(int u){ tr[u].su.
2021-08-20 11:43:36
112
原创 数位DP例题
空#include <iostream>#include <cstring>#include <algorithm>#include <vector>using namespace std;int get(vector<int> num,int l,int r){ int res = 0; for (int i=l;i>=r;i--) res = res*10 +num[i]; return res;.
2021-08-12 11:35:40
106
原创 状态压缩DP例题(旅行商问题和填矩形问题)
方便以后复习看一下给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数 n。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i 到 j 的距离(记为 a[i,j])。对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。输出格式输出一个
2021-08-11 16:32:11
175
原创 2020 ICPC Asia Taiwan Online Programming Contest C Circles
这道题真是忽略了过程就会错,以后再也不一有点思路直接写了。题目链接++++++++++++++++++++++++&&&&& 题意大体是刚开始给你n个圆心,游戏开始后每个圆的半径开始以相同的速度增长,当一个圆碰到另一个圆时圆停止增长。这样的话,随着圆的增长其他圆的半径也会被限制(这是动态变化的,肯定最小的两个圆先停止增长,然后其他圆心半径变化,每次需找最小值,可以用优先队列),并不是找到距离每个圆心最近的那个圆心就是停止生长的位置,题目如下There are
2021-08-10 20:19:59
388
原创 ST表学习
ST表的应用是解决RMQ问题,预处理建ST表的时间复杂度是O(log n),一般是解决求区间极值也可维护gcd的问题,高级应用是求区间里一个数字出现最多的次数,求次数。基本原理可以看这篇文章++++++++++++++++++++++++++++++++++ST表预处理#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 5e4+1
2021-08-09 11:36:04
159
1
转载 乘法逆元作用
先说一下什么叫做逆元:逆元数论倒数,又称逆元数论中的倒数是有特别的意义滴你以为a的倒数在数论中还是1/a吗(・∀・)哼哼~天真先来引入求余概念(a + b) % p = (a%p + b%p) %p (对)(a - b) % p = (a%p - b%p) %p (对)(a * b) % p = (a%p * b%p) %p (对)(a / b) % p = (a%p / b%p) %p (错)为什么除法错的证明是对的难,证明错的只要举一个反例(100/50)%20 = 2 ≠ (
2021-08-06 17:52:09
110
原创 求组合数四种方法
给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cabmod(109+7) 的值。O(n*n)做法递推式预处理#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 2010,mod = 1e9+7;int c[N][N];void init(){ for (int i=0;i<N;i++)
2021-08-06 17:46:41
315
原创 容斥原理(能被整除的数)
能被整除的数给定一个整数 n 和 m 个不同的质数 p1,p2,…,pm。请你求出 1∼n 中能被 p1,p2,…,pm 中的至少一个数整除的整数有多少个。输入格式第一行包含整数 n 和 m。第二行包含 m 个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤109输入样例:10 22 3输出样例:7#include <iostream>#include <cstring>#include <algo.
2021-08-06 11:21:22
223
转载 Nim游戏阶梯 Nim游戏和SG函数应用(集合游戏)
阶梯Nim 游戏现在,有一个 n 级台阶的楼梯,每级台阶上都有若干个石子,其中第 i 级台阶上有 ai 个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数 n。第二行包含 n 个整数,其中第 i 个整数表示第 i 级台阶上的石子数 ai。输出格式如果先手方必胜,则输出 Yes。否则,输出 No。数据范围1≤n
2021-08-06 10:56:34
294
原创 日志1111
1.n堆石子,一次挑选不同的两堆各拿一个,能否拿完,拿完的方案是啥,利用优先队列大根堆,每次先消减大的。2. 例题 A<B ,A,B位数相同,要调整一位使得A>B,可以用字符串储存这样方便找数字的各位。仅仅调整两数的最高位就行,只有两种特殊情况不能调整。...
2021-08-04 21:57:44
104
原创 统计特殊子序列数目(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
221
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人