- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 快速幂模板
一般的int ppow(int a, int b) { int ans = 1; for (int w = a; b;w*=w, b>>=1) if (b & 1)ans *= w; return ans;}带取模的int ppow(int a, int b, int mod) { int ans = 1; for (int w = a; b;w=(w*w)%mod, b>>=1) if (b & 1)ans *= w, ans %= mo
2021-10-15 14:53:07
101
原创 Educational Codeforces Round 115 (Rated for Div. 2) B题betset暴力解法
题目链接题意对于 n 个长度为 5 的 01字符串, 你需要把这n个字符串分成数量相等的两组。并且在每一组中选择一个位置(0~4总共5个位置),使这一组的字符串在该位置全为 1 ,且两组所选位置不同。分析测试案例数(1≤t≤104)(1 \leq t \leq 10^4)(1≤t≤104)每个测试点的字符串数量(2≤n≤103)(2 \leq n \leq 10^3)(2≤n≤103)假如枚举两个位置则 C52=10C^2_5 = 10C52=10,极限情况 10810^8108, 常数大可
2021-10-10 22:50:33
183
原创 素数筛法(欧拉筛、埃氏筛)
文章目录一、埃氏筛1.原理:2.代码二、欧拉筛1.前言2.原理3.代码总结一、埃氏筛1.原理:质数的倍数不是质数。时间复杂度:O(nlog22n)O(nlog^2_2n)O(nlog22n)埃氏筛的时间复杂度不会证明,可戳别处2.代码int prm[255], prm_cnt;//存放素数的数组、素数个数bool iscompos[255];//true代表为合数,false代表素数数void make_prime(int n) { if (n <= 1)return; for
2021-10-04 14:28:17
259
原创 Harbour.Space Scholarship Contest 2021-2022(2021.7.22 晚10:35开始的CF比赛) A、B题题解
题目链接题意分析:给定两个字符串 s t ,在 s 字符串中某一位置开始向右移动再向左移动,形成一个新字符串。问:能否构成 t 这样的字符串?AC代码:#pragma warning(disable:4996)#include<stdio.h>#include<iostream>#include<algorithm>#include<stdlib.h>#include<string>#define max(a, b) (a &
2021-07-23 12:11:52
217
原创 最短覆盖子串问题解析
问题描述:给定两个字符串 aaa bbb, 试求字符串 aaa 的一个字串 sss,使得 sss 满足该串包含 bbb 中出现的所有字符满足条件1使该串长度最小问题分析:遍历 bbb ,储存所有出现过的字符。用 l r 表示 sss 在的 aaa 中的两个端点。当 sss 未满足条件1时 r++ , 满足条件1时 l++并记录答案。例题洛谷 P1638 逛画展代码如下:#pragma warning(disable:4996)#include<stdio.h>co
2021-06-29 10:20:28
136
原创 LIS (Longest Increasing Sequence)
struct LIS { int q[MAXn], r = 1, l = 1; void init() { for (int i = 1; i <= n; i++) { if (l < r)r = std::lower_bound(q + l, q + r, a[i]) - q;//寻找第一个大于等于的数字 q[r++] = a[i]; } } int size(){ return r - l; }}L;
2021-06-16 13:24:49
86
原创 朝花夕拾喵の单调队列
#include<stdio.h>#include<algorithm>#include<functional> const int MAXn = 5e6 + 5;int read() { int w = 0, r = 0; char ch = getchar(); while (ch < '0' || ch >'9')w |= ch == '-', ch = getchar(); while (ch >= '0' && c
2021-06-09 22:15:49
123
原创 洛谷P4933 大师 解题报告!
题目描述nnn 个数构成的数列 ana_nan ,问其中有多少个等差数列。n≤103,v≤2×104n \le 10^3 ,v \leq2 \times 10^4n≤103,v≤2×104注意等差数列的公差可以为负数。只有一个数时也视为等差数列输入格式第一行一个正整数 nnn。第二行 nnn 个非负整数 a[i]a[i]a[i] 。输出格式输出一个整数,表示美观的方案数模 998244353998244353998244353 的值。输入输出样例输入 813 14 6 20
2021-06-07 19:20:57
148
原创 C++课程作业之 宠物类的创建
#pragma warning(disable:2243)#pragma warning(disable:4996)#include<stdio.h>#include<stdbool.h>class Pet{public: virtual void speack() {//本章知识点 虚函数 /* 目前虚函数的知识 我只在基类指针指向派生类对象时用到过 */ printf("How does a pet spack?\n"); return; };
2021-06-07 17:47:17
1056
原创 洛谷P1631 序列合并解题报告
题目描述有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到N2N^2N2个和,求这N2N^2N2个和中最小的N个。输入格式第一行一个正整数NNN第二行NNN个整数AiA_iAi, 满足Ai≤Ai+1A_i\le A_{i+1}Ai≤Ai+1第三行NNN个整数BiB_iBi , 满足Bi≤Bi+1B_i\le B_{i+1}Bi≤Bi+1【数据规模】对于50%的数据中,满足1≤N≤10001\le N\le 10001≤N≤1000;对于100%的数据中,满足1≤N
2021-06-07 00:03:36
263
原创 洛谷P2241 统计方形 解题报告!
题目描述有一个 n×mn\times mn×m 方格的棋盘,求其方格包含多少正方形、长方形(不包含正方形)。输入格式一行,两个正整数 n,m(n≤5000,m≤5000)n,m(n \leq 5000,m \leq 5000)n,m(n≤5000,m≤5000)输出格式一行,两个正整数,分别表示方格包含多少正方形、长方形(不包含正方形)。输入输出样例输入2 3输出8 10代码:#pragma warnign(disable:4996)#include<stdio.h>
2021-06-04 22:56:40
234
原创 蓝桥杯 历届试题之数字三角形 PREV-58
资源限制时间限制:1.0s 内存限制:256.0MB问题描述上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。输入格式输入的第一行包含一个整数 ,表示三角形的行数。下面的 行给出数字三角形。数字三角形上的数都是 至 之间的整数。输出格式输出一个整数,表示答案。
2021-06-04 20:44:12
112
原创 蓝桥杯 历届试题之核桃的数量 PREV-1
问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示每袋核桃的数量。样例输入12 4 5样例输出120样例输入23 1 1样例输出23
2021-06-04 18:38:22
88
原创 求多个数的最大公约数,最小公倍数
首先是两个数的,我们用辗转相除法来做int gcd(int x, int y){return y == 0 ? x : gcd(y, x%y); }int lcm(int x, int y){return x*y/gcd(x, y);}多个数的话连续算就好了//a[] 数组存放数,总共有n个数int t = gcd(a[1], a[2]);for(int i = 3; i <= n; i++){t = gcd(t, a[i]);}...
2021-06-04 14:49:50
87
原创 C++课程作业作业之Ponit2D 和 Ponit3D类的创建
老师课上布置的作业要求如下:(1)设计类Point2D,包含两个私有权限的double类型数据成员x和y,分别表示2D平面上点的x、 y坐标数值;( class Point2D )(2)在Point2D类中包含两个参数的构造函数,构造函数的两个形参分别用以为数据成员x和y初始化;参数x、参数y的默认参数值分别为1.0、1.0;(3)在Point2D类中添加一个拷贝构造函数;(4) Point2D类中包含一个用以输出数据成员x和y的print()成员函数,完成其具体的实现;(5)完成Point2D类
2021-06-03 16:11:14
1274
原创 堆、优先队列极其应用
循环实现://省略头文件#define ls(x) (x<<1)#define rs(x) (x<<1|1)#define fa(x) (x>>1)class Heap{public: int a[(unsigned int)1e6 + 5], size; void insert(int num) {//num x size 分别是欲插入的数、位置、堆长度 int x = ++size; while (a[fa(x)] > num &
2021-06-01 11:14:25
136
原创 洛谷P2397 yyy loves Maths VI (mode)
用到了什么摩尔投票法233另外,这题可以明显看出scanf、cin、快读的时间差别。题目链接代码:#include<stdio.h>#define max(a, b) (a > b ? a : b)int read() { int w = 0, r = 0; char ch = getchar(); while (ch < '0' || ch >'9')w |= ch == '-', ch = getchar(); while (ch >= '0' &a
2021-05-27 21:41:36
96
原创 洛谷P2515[HAOI2021] 软件安装 解题报告!
经典树形背包加Tarjan缩点这是一个小链接代码如下:#pragma warning(disable:4996)//VS的毛病#include<stdio.h>#include<queue>#include<stdbool.h>#include<cstring>#define max(a, b) (a > b ? a : b)#define min(a, b) (a < b ? a : b)#define mem(a, sum)
2021-05-27 21:03:20
91
原创 一个小问题关于 2-SAT
今天学 2-SAT 的时候,思考了个小问题假如有一颗树, 树上每个节点有一个布尔值。现在有一些限制条件1:布尔值为0的节点的父亲的值为02:布尔值为1的节点的孩子的值为1
2021-05-18 15:59:32
48
原创 宏定义的嵌套使用
很好奇宏定义可否嵌套使用经试验 可以,分下面两种情况#include<stdio.h>//#define ls(p) (p << 1)#define lls(p) (ls(ls(p)) << 1)#define ls(p) (p << 1)int main() { printf("%d ", lls(1)); return 0;}#include<stdio.h>#include<iostream>#defin
2021-05-14 10:29:33
2425
原创 关于ios::sync_with_stdio(false)的一些小问题
常见“我在本地/xxOJ AC了、洛谷却不过”的原因Linux中换行符是’\n’而Windows中是’\r\n’(多一个字符),有些数据在Windows中生成,而在洛谷评测机Linux环境下评测。这种情况在字符串输入中非常常见。评测系统建立在Linux下,可能由于使用了Linux的保留字而出现CE,但在Windows下正常。Linux对内存的访问控制更为严格,因此在Windows上可能正常运行的无效指针或数组下标访问越界,在评测系统上无法运行。严重的内存泄露的问题很可能会引起系统的保护模块杀死你的
2021-05-13 20:25:45
629
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人