
C++学习
文章平均质量分 58
本人的C++学习笔记
go_bananas
坚持记录是一种值得培养的习惯
展开
-
C++运用——商品管理系统(实现鼠标点击操作,磁盘存储数据)
设计指标:用户使用账号、密码登录;系统展示功能菜单;显示所有商品的信息(至少包括:编号、名称、单位、价格、库存数量);商品进货:输入商品编号,显示商品信息,输入数量(需要验证非负),增加库存量;商品销售:输入商品编号,显示商品信息,输入数量(需要验证非负、限量),减少库存量;新增商品:输入各项商品信息,增加商品种类;盘点:显示所有商品信息,使用“红字”出库、入库进行平库操作;显示操作记录:以上每次操作都要记录输入的参数、操作时间、操作人(账号),在此全部显示出来;数据存储要求:所有的商品原创 2022-04-27 20:54:40 · 1895 阅读 · 0 评论 -
图论3—差分约束
差分约束运用范围:(求解多个二元不等式组)例如:X1−X2<=0X1-X2<=0X1−X2<=0X3−X4<=8X3-X4<=8X3−X4<=8X2−X5<=−9X2-X5<=-9X2−X5<=−9X3−X1<=7X3-X1<=7X3−X1<=7X5−X2<=0X5-X2<=0X5−X2<=0..................原理:对于这类不等式组,其解集要么无解,要么有无数解。(所有数同时加上原创 2022-02-15 23:13:49 · 247 阅读 · 0 评论 -
【题解】 NKOJ P3545 【接近】——单调队列
【接近】——【单调队列】NKOJ _P3545问题描述对于一个数字序列A,并且有若干询问。对于每个询问,要求求出一段在序列A中非空 的连续段使得这一段数字的总和的绝对值尽量接近P。输入格式第一行2个数N、T,表示序列的长度和询问的个数。接下来一行N个整数,表示A序列。 接下来T行,每行一个数P表示询问。样例输入样例输出5 1 -10 -5 0 5 1035 2 ...原创 2019-07-20 10:22:52 · 283 阅读 · 1 评论 -
【题解】NKOJ/【BZOJ2790】【Poi2012】距离——数学
问题描述对于两个正整数a、b,这样定义函数d(a,b):每次操作可以选择一个质数p,将a变成a*p或a/p,如果选择变成a/p就要保证p是a的约数,d(a,b)表示将a变成b所需的最少操作次数。例如d(69,42)=3。现在给出n个正整数A1,A2,…,An,对于每个i (1<=i<=n),求最小的j(1<=j<=n)使得i≠j且d(Ai,Aj)最小。输入格式第...原创 2019-09-08 01:25:16 · 436 阅读 · 1 评论 -
【题解】洛谷 P4952 【[USACO 2004 Mar]Financial Aid 赞助学费】——中位数
这显然是一道关于中位数的水题。那么简化问题及为:要求选出的N头牛的成绩的中位数尽可能大,我们可以考虑依次讨论每头奶牛的成绩是否适合作为中位数。1.先把牛们的分数由小到大排序那么这个中位数显然在[n/2+1…c-n/2]中。2.若k位于这个范围[n/2+1…c-n/2],那么Score[k]是否是一个合理的中位数呢?在[1…k-1]间定要选出n/2头牛,我们希望选总学费尽量少n/2头奶牛...原创 2019-07-20 13:07:18 · 232 阅读 · 0 评论 -
【题解】洛谷 P3225 【[HNOI2012]矿场搭建】—— TarJan
【题解】洛谷 P3225 【[HNOI2012]矿场搭建】—— TarJan前置知识:这是一道好题 ,包含的知识有——(TarJan求割点,TarJan求点双联通分量,组合数学)如果你不知道怎么用TarJan求割点请戳这里!如果你不知道什么是点双联通分量请戳这里!如果你不知道什么是组合数学? %一下PHenning你就会啦!%%%stO PHenning Orz%%% 题目描述煤矿...原创 2019-07-21 01:41:59 · 341 阅读 · 1 评论 -
【题解】NKOJ——分治练习赛
**A 组队参赛**问题描述一年一度的信息学竞赛NK校赛即将开始,何老板在组织安排报名工作。南开信竞队分为小学、初中、高中三个梯队:小学梯队有N个队员,年龄分别是 A1A_1A1,A2A_2A2…ANA_NAN初中梯队有N个队员,年龄分别是 B1B_1B1,B2B_2B2…BNB_NBN高中梯队有N个队员,年龄分别是 C1C_1C1,C2C_2C2…CNC_NCN比...原创 2019-08-18 17:25:58 · 1649 阅读 · 0 评论 -
图论1—图的存储
图的存储方法一:邻接矩阵用表来存储图。优点:代码简单,便于理解。缺点储存空间大,时间成本高。两点间存在多条边不能存储代码:cin>>n>>m;for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ if(i!=j)Map[i][j]=inf; else Map[i][j]=0; }//预处理图,自己到自己的距离为0,其它的为无穷大for(int i=1;i<=m;i++){/原创 2022-02-15 22:24:12 · 479 阅读 · 0 评论 -
【题解】&&【模板】洛谷 P3387【缩点】——TarJan+Topsort+DP
【题解】&&【模板】洛谷 P3387【缩点】——TarJan+Topsort+DP传送门为什么感觉我最近都在做TagJan的题??果然是我太蔡了吗!!!题目描述给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。输入输出格式输入格式:第一行,n...原创 2019-07-23 20:05:00 · 318 阅读 · 1 评论 -
动态规划1——背包问题
动态规划1——背包问题背包问题1:(有限个物品求最大容量)问题:一个背包容积为T,有N个物品,每个物品有一定体积V,从这N个物品中选取若干个装入背包内,求背包最小的剩余空间。决策:f[i]表示能否选取若干个物品放入背包,使得背包已使用的体积恰好为i,能为true,不能为false.动规方程: f[0]=1; for(int i=1;i<=N;i++){//i为依次讨论的物体 for(int j=T;i>=v[i];j--)//j为讨论背包的容量 if(f[j-v[i]]原创 2022-02-28 11:03:08 · 333 阅读 · 0 评论 -
图论2—最短路
最短路单元最短路Dijkstra原理:贪心实现先把所有的点到原点的距离设为无穷大.再依次讨论离原点最近的点讨论与这个点相连的边,更新最小值注意1.Dijkstra不能用于有负权的图2.可以用小根堆维护Dis3.时间复杂度O(NlnN)O(NlnN)O(NlnN)代码实现:#include<stdio.h>#include<bits/stdc++.h>using namespace std;#define H 500005#define LL原创 2022-02-15 22:27:47 · 606 阅读 · 0 评论