自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023牛客寒假算法基础集训营2个人题解

2023牛客寒假算法基础集训营2个人题解

2023-01-19 00:02:38 194

原创 Codeforces Round #802 (Div. 2)

Codeforces Round #802 (Div. 2)

2022-06-27 21:07:02 172

原创 Codeforces Round #788 (Div. 2) A~D

A. Prof. Slim题意给定长度为n的整数序列a1—an,每次可以进行如下两种操作中的一个:互换两个不同符号元素的符号(即:把一个正数和一个负数变成他们的相反数)选择两个元素,使他们拥有不同符号问:能否通过有限次操作把序列a1—an变成单调不下降序列?思路负号的数量是恒定的,把所有的m个负号给最前面的m个元素,然后判断是否可行即可。代码实现void solve() { int t = 0; cin >> t; while (t--) { int n = 0

2022-05-08 10:47:02 395

原创 AtCoder Beginner Contest 245

AtCoder Beginner Contest 245**C - Choose Elements **(dp)原题题意给定两个长度为N的整数序列A和B,整数K。询问是否能找出来满足下列两个条件的长度为N的整数序列X:Xi是Ai或Bi中的其中一个|Xi - Xi+1|<=K思路dp.第i个位置状态与第i-1个位置的状态有关,因此可以用dp来解决。d[i] [j] 表示下标为i的j点是否可达,最后查看d[n-1] [j]是否可达即可。代码实现//当前位置的状态与前一个位置的状

2022-03-28 17:56:12 477 2

原创 Codeforces Round #776 (Div. 3)

A. Deletions of Two Adjacent Letters题目描述:给一串字符串s和一个字符c,判断该字符串能否在被若干次拿走连续的两个字符后只剩下c字符。本题的核心在于连续的两个字符。思路:本题的思路不是很难,我们只需要判断s中的c字符前有多少字符即可,若字符数目为偶数或0,说明可以变成c;若字符数目为奇数,则不能变成c。#include<cstdio>#include<iostream>using namespace std;int main()

2022-03-10 21:06:16 163

原创 【算法竞赛入门经典】第五章-木块问题(详细注释)

#include<cstdio>#include<iostream>#include<vector>#include<string>const int maxn = 30;int n;//一共有n堆 using namespace std;vector<int>pile[maxn];//声明一个vector数组pile,一共有n堆,每一堆的高度是不确定的,又都是一个vector数组 (相当于一个二维vector数组) void .

2021-11-19 18:46:01 890

原创 【算法竞赛入门经典】第三章-用指针数组行使if功能

#include<stdio.h>const char* msg[] = {"not a palindrome","a regular palindrome","a mirrored string","a mirrored palindrome"};int main(){ char s[30]; while(scanf("%s",s)==1)//"1"表示有1个字符串 { int p=1,m=1; //判断s是回文串还是镜像串 //p=0表示不是回文串,m=0表示不.

2021-11-06 16:05:53 74

原创 【算法竞赛入门经典】第三章-生成元

题干:如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小生成元。无解输出0.例如,n=216,121,2005时的解分别为198,0,1979思路:本人一开始看到这题时首先想到了枚举(好吧大家都能想到),但本书提供了一种奇妙的方法:做表。#include<stdio.h>#define maxn 100005int arr[maxn];int main(){ int T,n; memset(arr,0,sizeof(arr));

2021-11-04 22:02:23 445

原创 一个不算技巧的技巧

变量在for循环外定义后,参与for循环后不会销毁,这我还是第一次知道(啊这......)int main(){int i = 0;int s[10] = {0};scanf("%s",&s);for(i=0;s[i]!=0;i++);//找到数组s中第一个非0的元素,并保存此元素的下标——可以用来在数组中找元素,比较方便return 0 ;}...

2021-11-03 21:03:41 44

原创 【算法入门经典】第三章-蛇形填数

本题思路为:先创建一个二维数组,然后找到填数的起始位置,之后用“下-左-上-右”的走法实现一个循环,然后不断重复这个循环就可以实现指定大小的填数了。那么如何保证填数的时候不会填到已经填完数的位置呢?如果仅仅靠单纯的循环显然无法做到这一点,所以我们需要在循环的条件控制中加入一些“特殊”的限制。那么,这些限制是什么?这个时候就要引出我认为这个题目想要告诉我们的最核心的思想:先判断,再行动。这个思想个人认为应当十分重要,并且在今后做题时可能还会多次遇到,而这也是我写本篇博客的理由——帮助记忆这个思想并

2021-11-03 20:50:50 194

空空如也

空空如也

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

TA关注的人

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