自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 The 2022 ICPC Asia Regionals Online Contest (II) L Quadruple

题意:只有I、C、P构成的字符串, Q次查询,求区间子序列构成“ICPC”的数量之和。

2022-09-29 09:01:51 290

原创 The 2022 ICPC Asia Regionals Online Contest (II) B Non-decreasing Array

与区间dp的最大不同在于,区间dp在一段区间内操作次数是固定的,但本题中一段区间内操作次数可多可少,所以我们要对于每个操作次数都枚举区间,其余的枚举操作数、左端点和分割点的操作都与区间dp类似,注意枚举分割点时,要保证a[r-1]一定被删除,所以操作数要取那个区间能取的最大值。比赛一看题高兴坏了,想着100的数据规模正好对应0.4s的时间,跟队友说贪心一波过,然后就开头改到结尾😭。表示l到r区间,两端必不删,操作k次,取得的最大值。,但是需要一些魔改,例如区间dp一定是取。很快会想到区间dp,

2022-09-28 00:22:46 467

原创 “蔚来杯“2022牛客暑期多校训练营2 K Link with Bracket Sequence I

状态的定义就很关键了,第一层是常见的解的长度,即原字符串的长度m,第二层则为与题目给出的子串最大匹配数量再次提醒不要求连续),第三层为括号匹配常见的左括号未匹配数量(就是说目前还多出来、未被右括号抵消的左括号数量),表示为f[i][j][k].例如n = 3, m = 5, substring = "(((", 则原字符串有5种合法方案:()()(), ()(()), ((())), (()()), (())(). 可以看出即为n=6时所有合法括号匹配的数量。然后前两层逐层枚举即可。这题要使用三维dp,..

2022-08-08 23:23:07 264

原创 “蔚来杯“2022牛客暑期多校训练营2 D Link with Game Glitch

part3.计算完dp[N][N]后,对于每个材料或者称顶点u,要计算以该店为首尾的简单环权值就很简单了dp[n][u]-dp[i][u],i为0到n-1(当然其中n-1显然不会构成环),表示步数或者更直接的我们称为深度。part2.使用dp[i][u]表示走i步到u的权重之积,每一步操作我们都枚举每一条边,对于边{u,v,w},dp[i][u]=min(dp[i][u],dp[i-1][v]+w),如此我们可以去除重边。,本题解会简单说明该做法的一些正确性?......

2022-07-30 00:23:53 280

原创 “蔚来杯“2022牛客暑期多校训练营3 J. Journey

输入是一个方向矩阵,每行4个数代表十字路口的4个方向,按逆时针排序,因为右转的相对的,所以你随便取一个方向固定这个图即可。当然这只是方便你画出来理解题意,样例解释已经告诉我们怎么判断右转,直接用即可。题意(难懂警告,无论是原题体面还是我的解释)某个人要开车去找朋友,每过路口必逢红灯,他想利用右转忽略红灯的规则,要算最少遇到几个红灯。然后为了理解题意,我大概画了一下,可以看到按照这种走法,只有最后掉头遇到一个红灯。队友觉得嗯搜过不去,但是我这个彩笔补题时发现直接广搜即可。...

2022-07-26 00:40:19 167

原创 AtCoder Beginner Contest 259 E - LCM on Whiteboard

传送门:E - LCM on Whiteboard (atcoder.jp)虽然每次都说差一点写出来,但是这次是真的只差一点了题意:直接给出N个数的质因数分解,求挨个把这些数替换为1后LCM有几个,注意一次只替换一个那就很简单了,无论这个数列怎么取,LCM应该等于出现的所有质数的最大幂次相乘,人家都帮你分解好了,只要记录最大值即可。然后我们考虑如何模拟替换,思考何时把数替换为1以后LCM会改变,那不就是组成这个数的质数中至少一个是原数列的最大幂次,且这个质数和幂次只有这个数有(唯一)那稍微考虑一下把代码写出

2022-07-09 23:38:52 549

原创 AtCoder Beginner Contest 259 D - Circumferences

传送门:D - Circumferences (atcoder.jp)题意:N个圆,两个点,判断是否能沿着这些圆的边从起点走到中点,让我想起小时候走花台的时候(现在也走稍微一想就能得到一个清晰的思路,两点以题目要求的方式连通需要满足以下条件:那么相应的写法就有了,我先判断每两个圆之间是否相交或相切():若是,则看作两圆相连通,否则不做处理;然后选两点中一点作为起点,深搜判断是否能走到终点即可。...

2022-07-09 23:13:26 323

原创 Codeforces Round #800 (Div. 2)

也不知道谁给我的勇气开D题……还好算是相对简单的D吧,虽然没在比赛时间内做出来就是说……传送门:Problem - D - Codeforceshttps://codeforces.com/contest/1694/problem/D题意:给一棵原本每个点权值是0的树,并赋予每个点权值区间,要用尽量少的操作使整棵树每个点权值落在对应区间内。操作方式为:拎出一条从根节点1开始的路径,给路径上的每个节点加上不少于之前节点的权值。我一开始总结的规则比较粗糙(当然也是错的),但是从这个点开始想感觉还行?对任意一个节

2022-06-18 12:47:17 441

原创 ch9 模 板

一、冒泡排序函数模板主程序测试整形数组、字符数组、字符串数组的排序(不使用STL)//本程序实现从大到小排序#include<iostream>#include<string>using namespace std;template<typename T>void BubbleSort(T a[], int n) { for (int i = 1; i < n; i++) { int temp = i; T tmp; for (in

2022-04-28 11:11:25 256

原创 Homework12_ch8 多态——运算符重载(2)

人民币的排序题目描述如下:设计人民币类,类设计和运算符重载参看homework11. 增加重载比较运算符:小于 <、大于 >、小于等于 <=、大于等于>= 、不等于 !=、等于 == . 功能说明:在主程序中:有10个人民币:+ 1 2 3, + 22 33 44,+ 0 0 0,- 100 0 2, + 77 6 0,+ 207 8 9,- 60 56 3,+ 88 8 8, -203 45 3,+ 95 6 6 这些数据是原始数据,有些需要格式化(进位

2022-04-28 11:08:19 250

原创 Homework11_ch8(2) 多态——运算符重载(1)

人民币类---运算符重载题目描述如下:设计人民币类,数据成员包含正负标志位、元、角、分 ,设计构造函数、重载+、-、前置自增、后置自增、前置自减、后置自减、输出流插入运算符<<、输入流提取运算符>> . 其中前置自减、后置自减、<<和>>重载成友元函数。 自增表示增加1分钱。自减表示减少1分钱。加减法和构造时的进位要考虑。 编写主函数测试之。功能说明:所有的人民币的输入和输出都要使用重载的运算符<<...

2022-04-28 11:03:29 406

原创 Homework10_ch8 多态(1) -- 虚函数

关于构造矩形的说明:矩形由对角顶点构造,矩形的2条邻边和坐标轴分别平行。(二)抽象基类的设计:class Shape{public: Shape(){} virtual ~Shape(){} void GetInfo() { cout<<”这是一个 ”;Show(); cout <<endl<<”它的面积是”<<Area()<<en...

2022-04-28 11:01:16 209

原创 Homework9_ch7 继承和派生(2)

一、时钟-闹钟类在时钟类Clock的基础上派生闹钟类AlarmClock(1)时钟类ClockClock类设计如下,请实现成员函数。class Clock{ private: int Hour, Minute, Second; //24小时制的时间数据public: Clock(int hour, int minute, int second); void ShowTime(); ...

2022-04-28 10:59:02 625

原创 Homework7_ch5 数据的共享与保护(2)——friend

1. 友元函数设计1.1 程序描述模拟电力公司统计用户用电量。请设计一个类FamliyElecPower描述每户人家一年的用电情况,一年的12个月的每月电量都要记录。设计函数CalTotalEPower,计算每户一年的总电量;函数CalAveEPower计算每户的每月平均用电量。函数CalTotalEPower和函数CalAveEPower是类FamliyElecPower的友元函数。主程序中创建1户人家,输入这户人家1年12个月的用电量,然后调用函数CalTotalEPower和函数CalAveE

2022-04-28 10:56:44 296 2

原创 Homework6_ch5 数据的共享与保护(1)——static

超市经销大米,成袋购入,成袋售出。每袋大米的质量有2.5公斤的、有5公斤、有10公斤的等,超市记录所有大米的总质量。设计Rice类,包含私有数据成员: 质量Weight和产地Place;还包含私有静态数据成员: 总质量TotalWeight . Rice类的公有成员函数:构造函数 Rice(double weight=0, string place=”XXX”); 构造新对象的同时总质量要增加; 拷贝构造函数 Rice(const Rice&); 拷贝构造新对象的同时总质量要增加; .

2022-04-28 10:51:44 534

原创 Homework5_ch4 类和对象(3)

一个表示分数的数据类型,它能以2/3这样的格式输出或输入,能完成分数的加、减、乘、除等运算。 一个Fraction分数须满足以下两个条件:  ①分母永远为正,分数的符号用分子表示;  ②分子分母互质,即总表示为最简分数。 说明:数据成员: fraction通过两个私有数据成员int 型num和den分别保存分子和分母;成员函数:(a)构造函数Fraction(int n=0,int d=1);(b) Standardize函数进行标准化处理,例如:2/4 = 1/2 , 2/-

2022-04-28 10:50:08 264

原创 Homework4_ch4 类和对象(2)

定义、实现并测试Number类。定义类的私有数据成员n1和n2为两个数字。定义缺省形参值(0)的有参构造函数,赋予n1和n2初始值。定义加addition、减subtration、乘multiplication、除division等公有成员函数分别对两个成员变量执行加、减、乘、除的运算。在主程序中创建Number类的对象调用各个方法并显示计算结果。//number.h#pragma once#ifndef NUMBER_H#define NUMBER_Hclass Number

2022-04-28 10:37:08 341 2

原创 Homework8_ch7 继承和派生(1)

继承和派生类的设计点类(Point),派生圆类(Circle)和矩形类(Rectangle)。如下图:点类中:私有数据成员int x 和 int y ,分别表示横坐标和纵坐标; 构造函数Point(),将x和y都初始化为0 ; 构造函数Point(int xx,int yy),将x和y分别初始化为xx和yy的值 ; 析构函数~Point() ;移动函数void Move(int xOff,int yOff), 将x沿横轴移动xOff个...

2022-04-28 10:30:00 469

原创 AtCoder Beginner Contest 248 E - K-colinear Line

传送门:E - K-colinear Line (atcoder.jp)题意:给N个点,找出线上有K个点及以上的线有几条?看了一下蒋的思路:先算出所有线,记录一下(注意符号,和表示同一条线)即可,然后再用每条线遍历每个点看哪些点在线上,最后复杂度。很好想,但是我的方法可以(自豪哼哼,虽然大佬肯定不屑于纠结这些没啥用的)同样是的计算所有线,记录每条线出现次数,出现次数就表示这条线上面的点有K个以上。代码如下:#include<iostream>#include<c

2022-04-17 16:24:57 437

原创 2021-2022 ICPC, NERC, Northern Eurasia Onsite Problem-L. Labyrinth

可能是今年我写的最漂亮的一题(毕竟蒟蒻传送门:Problem - L - Codeforces (Unofficial mirror site, accelerated for Chinese users)题意:有向图,两个人从出发点开始从两条不同的路走到终点,出发点给定,终点任选(除出发点外)。注意:可能成环!可能非连通图!(写着写着把成环忘了,RE两发血亏TAT)/*样例输入5 5 11 22 31 44 33 5输出Possible31 2 331 4 3

2022-04-14 11:00:22 1035

原创 Educational Codeforces Round 126 (Rated for Div. 2) B. Getting Zero

现在就是后悔,非常后悔。被教育赛深深地教育了。传送门:Problem - B - Codeforces题意:最少操作使每个数变得%32768为0,两种操作:(1)+1(2)*2很快看出特殊数很兴奋就开搞了,只要把待操作的数最低位的1推到第15位,或者保证这个数从第一位开始连续15个零,最多操作15次,连乘15次。这不直接dp吗?(因为当时没有发现只要推数时*2比加数贡献大就一直做乘法即可下简单说明为啥推数时*2比加数贡献大(或操作数少)就一直做乘法即可我们把110

2022-04-10 22:10:47 576

原创 Codeforces Round #780 (Div. 3) C. Get an Even String

原题链接:Problem - C - Codeforces很怀疑cf的div是不是偷偷上难度了,div.3的C都要上dp了?题意:求最少删多少个字符,使题目给出的字符串满足就是把字符串变成aabbccdd...这样的形式,显然得到的是双数贪心一发入魂,知道自己必掉大分。我的贪心做法是每次碰到一对字符之后就删除中间值,其他字符打标记,之后遍历一遍删除。最值无非就那么几种求法,只能动规了。考虑是使前个字符满足题意需要删掉的最少字符数,如果字符之前没有出现过的字符则需要把它删除,,但若

2022-04-01 22:13:21 240

原创 数据结构学习

不学不行啊

2021-09-16 13:36:57 491

空空如也

空空如也

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

TA关注的人

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