自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 八数码 bfs

代码:#include <iostream>#include <cstring>#include <queue>#include <algorithm>#include <unordered_map> //map有序,内部红黑树,查找效率低,会T //unordered_map内部哈希表,查找速度快,常用于查找问题using namespace std;int mov[4.

2022-03-31 17:37:50 221 2

原创 包子凑数(刷题赛) 蓝桥杯

#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N=1e6+110;int n,a[N];int gcd,cnt;bool vis[N]; //记录可以被凑出来的数 int main(){ cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; vis[.

2022-01-25 18:12:06 5146

原创 蓝桥杯 方格分割(刷题赛)DFS

6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。如下就是三种可行的分割法。试计算: 包括这 33 种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。思路:本来想着从方格的角度来dfs遍历,当走过的方格数为18时ans++,但是不能找到一个合适的起始点,从不同点出发获得的答案也不相同,还要再分情况讨论。如果从点的角度出发的话就简单很多了,把图看作一个7×7的点图,无论怎么分割,一定经过中心点(3,3),当遍历到边缘时,图形也就随之确定了。#inc

2022-01-17 21:51:20 723

原创 洛谷 P1429 平面最近点对(加强版) (分治法)

⭐分治法⭐#include <iostream>#include <cmath> #include <algorithm>using namespace std;const int N=2e5+10;const int INF=0x3f3f3f3f;int n;double res;struct node{ double x,y;}v[N],vv[N];void read(){ scanf("%d",&n); for(int

2022-01-16 21:22:53 413

原创 蓝桥杯 平面切分【第十一届】【省赛】【B组】

代码:#include <iostream>#include <cstring>#include <cmath>#include <algorithm>#include <set>#include <vector>using namespace std;const int N=1e5+10;int n;set<pair<double,double> > s; //存线 set<pai.

2022-01-14 16:35:22 411

原创 第五(??)次个人赛

Like 1 + 1(大数乘法取模)Description求 a 乘 b 对 p 取模的值,其中1<=a,b,p<=1e18。Input第一行a,第二行b,第三行p。Output一个整数,表示a*b%p的值。AC代码把乘法转化为加法计算。#include <iostream>#include <cstring>#include <cmath>#include <cstdio>#include <algorithm&g

2021-08-24 17:57:10 126

原创 Acwing第五章动态规划(一)背包问题

背包问题01背包01背包朴素版01背包优化版完全背包完全背包朴素版完全背包优化版01背包01背包朴素版每件物品只能取一次。#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;const int N=1010;int n,V; //n件物品,容积为Vint v[

2021-08-20 15:53:08 122

原创 第五次团体赛

第五次团体赛B:3727:摘花生(DP)⭐⭐C - 换乘砖家 计蒜客 - T1401 (Dijkstra + 思维 + 建图)⭐⭐⭐D. Mocha and Hiking (思维)E. Strange Birthday Party(贪心)(思维)⭐G - 协会的那点事 POJ - 2492 (种类并查集)⭐⭐⭐⭐⭐H-漫步森林(思维)I - 签到题 CodeForces - 1145A (思维K - 米奇妙妙屋 CodeForces - 1000B(思维+贪心??)⭐⭐⭐⭐L - x的趣味问题 CodeFo

2021-08-19 21:48:17 279

原创 19.KMP算法

KMP算法模板练习A - Number Sequence(KMP裸题)B - Oulipo(出现次数1.0)C - 剪花布条(出现次数2.0)D - Cyclic Nacklace(最小循环节)⭐⭐E - Period(循环节出现次数)F - Power StringsG - Seek the Name, Seek the Fame(求出所有既是前缀又是后缀的子串长度)⭐⭐⭐模板#include <iostream>#include <cstring>#include &lt

2021-08-16 21:30:30 298

原创 暑期训练第四次团队赛

暑期训练第四次团队赛A - Longest!!! POJ - 2533 (dp)E - 回文? CodeForces - 805B (思维)F - An interesting sequence CodeForces - 1557A (思维)I - YES OR NO CodeForces - 1324B (思维)K - w(゚Д゚)w坐大牢 POJ - 3984 (bfs+记录路径)⭐⭐⭐L - w(゚Д゚)w唱电音 HDU - 1794 (暴力)(二维数组覆盖次数)⭐⭐G - w(゚Д゚)w爱跑酷 PO

2021-08-12 22:43:49 354

原创 14. Floyd + 朴素版Dijkstra

14. Floyd + 朴素版DijkstraFloyd(多源最短路径)(O(n^3))练习A - 最短路 HDU - 2544 (模板)F - Cow Contest POJ - 3660 (微变形)C - 一个人的旅行 HDU - 2066 (Floyd+剪枝)Dijkstra算法朴素版 (单源最短路径)(O(n^2))练习I - Til the Cows Come Home POJ - 2387 (模板)D - Choose the best route HDU - 2680 (记录一个奇奇怪怪的wa

2021-08-06 21:08:30 463

原创 13.拓扑排序

13.拓扑排序模板练习A - Genealogical tree(模板题)D - 产生冠军(set/拓扑)(思维)F - Reward⭐(逆向拓扑、BFS??)H - Labeling Balls⭐⭐⭐(逆向拓扑)模板#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include <cstdio>#include <queue&g

2021-08-05 20:19:22 115

原创 8.前缀和与差分

前缀和与差分二维差分+二维前缀和练习E - Covered Points Count(差分+前缀和+离散化)⭐⭐二维差分+二维前缀和二维前缀和:pre[i][j] = a[i][j]练习E - Covered Points Count(差分+前缀和+离散化)⭐⭐You are given n segments on a coordinate line; each endpoint of every segment has integer coordinates. Some segments c

2021-08-04 19:31:36 111

原创 10.背包问题与滚动数组

10.背包问题与滚动数组背包问题01背包背包问题求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。01背包给n个物品和一个容量是m的背包,每个物品有两个属性,体积vi和价值wi,每件物品只能用一次。//n个物体,容量为m//体积v[i] 价值w[i]//状态方程f[i][j]表示前i件物品(不一定全部放入)放入一个容量为j的背包可以获得的最大价值 for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++)

2021-08-04 10:08:41 232

原创 暑期集训个人积分赛(二)

暑期集训个人积分赛(二)Robberies HDU - 2955 (01背包)二级目录三级目录Robberies HDU - 2955 (01背包)二级目录三级目录

2021-08-02 10:17:29 196

原创 9.快速幂与矩阵快速幂

9.快速幂与矩阵快速幂模板快速幂矩阵快速幂取模时遇到负数快速乘练习A - Fibonacci⭐(基础)B - Tr AC - A Simple Math Problem ⭐⭐E - ProjectEuler 48F - 求递推序列的第N项⭐G - 人见人爱A^B模板快速幂ll qpow(ll a,ll b){ ll ans=1; while(n) { if(n&1) ans=ans*a%mod; n>>=1; a=a*a%mod; } return ans;

2021-07-29 21:08:06 155

原创 6.二分+贪心

6.二分+贪心二分查找贪心算法练习进击的奶牛 (二分)洛谷P1824A - Trailing Zeroes (III)(判断n!末尾0的个数⭐⭐)(二分)B - Strange fuction(二分)C - Pie(二分)⭐⭐D - Best Cow Line(贪心)E - The Frog's Games(二分)F - 湫湫系列故事——消灭兔子(贪心+运算符重载)⭐⭐G - pairs二分查找二分查找的基本思想:将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x

2021-07-27 21:46:12 5173

原创 7.位运算,递归,全排列

7.位运算,递归,全排列模板递推/递归全排列练习A - 前缀异或 51Nod - 2128C - Skill Up (DFS、枚举)AtCoder - abc167_c ⭐⭐D - 一只小蜜蜂...(递推) HDU - 2044E - 母牛的故事 (递推)HDU - 2018F - 阿牛的EOF牛肉串(递推) HDU - 2047H - 排列2(全排列) HDU - 1716I - Ignatius and the Princess II (全排列)HDU - 1027模板递推/递归斐波那契数列:递

2021-07-27 17:57:23 332

原创 3.算法分析与排序

A - SORT AGAIN HDU - 2523 (哈希)给你N个整数,x1,x2…xn,任取两个整数组合得到|xi-xj|,(0<i,j<=N,i!=j)。现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它)。Input输入数据首先包含一个正整数C,表示包含C组测试用例.每组测试数据的第一行包含两个整数N,K。(1<N<=1000,0<K<=2000)接下去一行包含N个整数,代表x1,x2…xn。(0<=xi<

2021-07-27 09:52:33 279

原创 5.唯一分解定理、GCD、LCM

5.唯一分解定理、GCD、LCM模板唯一分解定理GCD(最大公约数)LCM(最小公倍数)练习C - Wolf and Rabbit(欧几里德的扩展)D - Cake(数学思维、模拟)模板唯一分解定理任何一个大于1的自然数 ,都可以唯一分解成有限个质数的乘积。GCD(最大公约数)欧几里德算法(辗转相除法):gcd(a,b)=gcd(b,a%b) 若d能整除a、d能整除b,那么d能整除(a+b)。=>若d能整除a、d能整除b,那么d能整除(xa+yb)。a%b=a-a/b*b=&gt

2021-07-24 16:55:05 478

原创 2021暑期积分赛一

2021暑期积分赛一A - Constructing the Array (CF353D)B - Taxi (CF58B)C - Running Median HDU - 3282D - What Are You Talking About HDU - 1075E - A + B Problem II HDU - 1002F - 首字母变大写 HDU - 2026G - Solving Order HDU - 5702H - 排序 HDU - 1106I - 前m大的数 HDU - 1280A - Con

2021-07-19 21:25:48 951

原创 2.STL Practice

2.STL PracticeA - {A} + {B} HDU - 1412 (set)B - Train Problem I HDU - 1022 (stack)C - Alice, Bob and Candies CodeForces - 1352D (deque)D - Let the Balloon Rise HDU - 1004 (map)E - 全排列 51Nod - 1384F - 水果 HDU - 1263 (map嵌套)G - Running Median HDU - 3282(优先队列)

2021-07-19 12:31:31 4141

原创 1.C++基础

1.C++基础A - A + B Problem II HDU - 1002D - Magical Bamboos Gym - 101350DG - Yet Another Walking Robot CodeForces - 1296CI - Assigning to Classes CodeForces - 1300BJ - Display The Number CodeForces - 1295AK - Yet Another Meme Problem CodeForces - 1288BA - A

2021-07-18 17:11:58 603

原创 紫书第二章 顺序循环

2-1 7744问题问题描述:输出所有形如aabb的4位完全平方数。思路一:#include <iostream>#include <cmath>using namespace std;int main(){ for(int i=1;i<10;i++) { for(int j=1;j<10;j++) { int x=i*1100+j*11; int y=floor(sqrt(x)+0.5); if(y*y==x) cout&

2021-07-14 09:25:29 71

原创 返回指针值的函数

例题:字符串的连接:输入两个字符串,输出连接后的字符串。要求自定义函数 char *strcat(char *s,char *t),将字符串t复制到字符串s的末端,并且返回字符串s的首地址。编写相应程序。输入输出示例:abcdefabcdef代码:#include <stdio.h>#include <stdlib.h>char *strcat(char *s,char *t){ char *ps=s,*pt=t; while(*ps) ps++; whi

2021-06-19 11:21:43 90

原创 函数实现字符串复制

题目描述:使用函数实现字符串复制:输入一个字符串t和正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s。要求自定义并调用函数void strmcpy(char *s,char *t,int m).编写相应程序。输入输出示例:Enter a string:happy new yearEnter a m:7new year代码:#include <stdio.h>#include <stdlib.h>void strmcpy(char

2021-06-19 11:18:50 10052

原创 报数问题(c++)

报数问题描述:n个人围一圈圈,从第一个人开始报数,报到m的人退出,问最后留到最后的是原本标号为几的人?输入:n,m输出:游戏最后一人的标号代码:#include <bits/stdc++.h>using namespace std;int main(){ int n,m; cin>>n>>m; int num=n; int a[1111],vis[1111]; for(int i=1;i<=n;i++) vis[i]=1; int

2021-06-17 11:16:07 1973

原创 Water Heater(前缀和)

Water Heater题目描述We have a water heater, which supplies W liters of hot water per minute.There are N people. The i-th person plans to use Pi liters of hot water per minute boiled by the heater from Time Si to Ti (excluding at Time Ti exactly). As hot wate

2021-06-14 16:33:05 295

原创 Knight Moves

Knight Moves‎问题‎‎您的任务是编写一个程序,计算骑士从另一个点到达一个点所需的最小动作数量,以便您有机会比索穆罗洛夫更快。‎‎对于不熟悉国际象棋的人,可能的骑士动作显示在图 1 中。‎Input‎输入从单行上的方案数 n 开始。‎‎接下来关注n个场景。每个方案由包含整数的三行组成。第一行指定了棋盘一侧的长度(4 <=l <= 300)。整个板子都有尺寸l*l。第二行和第三行包含一对整数 [0, …, l-1][0, …, l-1] 指定骑士在棋盘上的开始和结束位置。整数

2021-06-13 10:15:24 64

原创 棋盘问题(DFS深度遍历)

棋盘问题在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, .

2021-06-09 20:36:01 244

原创 简化的插入排序

简化的插入排序【项目说明】输入一个正整数n(0<n<9)和n个从小到大排好顺序的整数,再输入一个整数x,把x插入到这组数据中,使该组数据仍然有序。初始代码#include <stdio.h>#include <stdlib.h>int main(){ int n,a[10],i,x; scanf("%d",&n); for(i=0;i<=n;i++) scanf("%d",&a[i]); x=a[n]; //将x存于数组最

2021-06-04 22:39:27 2293 2

原创 将整数递归转换成字符串

题目描述:用递归法将一个整数n转换成字符串。例如,输入n为483,输出字符串 4 8 3,每个数字后面接一个空格用于隔开字符。输入一个整数n输出相应的用空格隔开的数字字符。样例输入:483样例输出:4 8 3代码实现:#include<stdio.h>void solve(int n){ int temp=n%10; /*********Begin*********/ n/=10; if(n>0) solve(n); /****

2021-06-03 16:31:04 276 1

原创 放苹果(递归)

放苹果????????把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8思路:设f(m,n)代表m个苹果放n个盘子里的分法个数。基例:

2021-06-03 00:08:38 223 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除