自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CathyLea

保持很多的热爱,和一点点野心

  • 博客(77)
  • 问答 (7)
  • 收藏
  • 关注

原创 Week4 作业C TT的神秘礼物 二分答案 尺取

题意:有n个数的数组cat(3<=n<=10^5,cat[i]<=10^9),构造一个新的数组ans,ans[]=abs(cat[i]-cat[j])(i!=j),试求出这个新数组的中位数,中位数为排序后pos=(len+1)/2位置的数。题目分析:最直接的方法是将ans数组求出来然后排序,复杂度为O(n^2),无法接受。二分枚举答案,共有logn种答案。对于每一...

2020-03-19 20:18:49 138 1

原创 Week4 作业B 四个数列 二分

题意:有四个数列A,B,C,D,每个数列都有n个数字(1<=n<=4000,数字不超过2^28),从每个数列中各取出一个数,计算有多少种方案使得四个数的和为0。当一个数列中有多个相同的数时,把它们当做不同的数对待。题目分析:如果对A,B,C,D中的每个数枚举一遍,共有n^4中情况,n<=4000显然超时。减少枚举次数,先枚举A、B,再枚举C、D,两重循环,O(n^...

2020-03-19 15:05:56 137

原创 Week4 作业A DDL的恐惧 贪心

题意:有n个DDL(easy:1<=n<=1000,1<=DDL<=1000;hard:1<=n<=10^6,1<=DDL<=10^6),若不能在DDL前完成,会扣掉平时分,每天只能完成一个DDL。安排DDL的完成顺序,使扣掉的分数尽量少。题目分析:靠前的DDL可供安排的时间少,靠后的DDL可供安排的时间多,为了对其它的DDL影响尽量小,...

2020-03-19 12:58:48 142

原创 Week3 作业C 区间覆盖 贪心

题意:数轴上有n个区间[ai,bi],选择尽可能少的区间覆盖一条指定线段[1,t]。要求覆盖整点,即[1,2]和[3,4]可以覆盖[1,4]。题目分析:贪心策略:预处理:将与[1,t]没有交集的区间去掉,剩下的区间按a升序排列。如果最小区间的左端点>1,无解。start为待覆盖区间的左端点,end为当前覆盖区间的右端点,选取以<=start为起点的所有区间中右端点最...

2020-03-19 11:25:32 131

原创 Week3 作业B 区间选点 贪心

题意:数轴上有n个闭区间[ai,bi],选尽量少的点,使得每个区间内都至少有一个点(不同区间内的点可以是同一个)题目分析:

2020-03-19 11:00:27 130

原创 Week3 作业A 选数 dfs剪枝

题意:有n个数,从中选取k个,要求和为s,计算有多少种选数的方法。其中, k<=n<=16。题目分析:dfs递归求解,n个数存放在数组a内,递归函数的参数为sum、i,表示从a[i]向后选数,和为sum,选出的数放进全局变量vector容器v内。当v中元素数为k并且sum=0时,找到一种符合条件的选数方法;当i>=n或者v中元素数>k或者sum<0时,该选...

2020-03-17 23:16:41 86

原创 CSP M1-A 咕咕东的奇遇

题意:字母a-z首尾相接成环,开始时指针指向a,圆环可以顺时针或者逆时针旋转,给定一个字符串,计算旋转依次得到该字符串的每一个字符最少需要转多少格。Input:一个字符串 长度<=10000Output:最少转动的次数题目分析:关键在于求两个字符之间的顺时针距离和逆时针距离,然后取最小值即可。两个字符之间的距离可以由两个字符对应的ASCII码做模26的减法得到。...

2020-03-17 22:38:23 113

原创 CSP M1-B 咕咕东想吃饭

题意:生煎店有两种购买方式:①某一天一次性买两个生煎 ②今天买一个生煎,同时为明天买一个,店家给一张券,第二天用券来拿。考试周有n天,给出每天咕咕东要买的生煎数,计算是否有满足要求的购买方式。要求:每一天可以无限多次执行任何一种购买方式;前一天的券必须在第二天全部用完;n天后不能有剩余的券;Input:第一行:整数n,表示考试周天数 1<=n<=100000第二...

2020-03-17 22:21:25 69

原创 CSP M1-C 可怕的宇宙射线 dfs剪枝

题意:宇宙射线在二维平面内传播,一段距离后向左右45°分裂,威力不变。宇宙射线会分裂n次,每次分裂后前进ai个单位再分裂。计算共有多少二维平面内的点受到宇宙射线的攻击。Input:第一行:分裂次数 n(n<=30)第二行:n个数,第i个数ai表示第i次分裂后前进的距离,ai<=5Output:一个数ans,表示共有ans个点被攻击题目分析:每一个点的状态...

2020-03-17 22:01:26 103

原创 八皇后 dfs 洛谷P1219

P1219 [USACO1.5]八皇后 Checker Challenge题意:n×n的棋盘,放置n个皇后,使其不会互相攻击。同行、同列、同对角线会相互攻击。按字典序输出前三个,第四行输出一共有多少种放法。做法:数组a[i]存放第i行的皇后放在哪一列,递归枚举全排列。枚举过程中判合法(可行性剪枝),判断左上、正上、右上是否有冲突,若是,回溯到父亲节点。代码://手动开O2...

2020-03-06 11:31:37 131

原创 Week1 实验 tips

输入直到文件尾:while(~scanf("%d",&a))while(scanf("%d",&a)!=EOF)while(cin>>n)控制台读入:windows:Ctrl+Z Linux:Ctrl+D 可识别一个EOF开数组:放在函数外的静态区,可以开大一点,会自动初始化scanf/printf格式化输入输出://doubledo...

2020-03-05 15:53:23 112

原创 Week2 实验C 打牌 排序

题意:S(南)、W(西)、N(北)、E(东)四位玩家顺时针就座打牌,按照给定发牌规则发牌后,每人13张牌,按照给定的排序规则,输出每人的牌的顺序。 ...

2020-03-05 14:54:22 154

原创 Week2 实验B 成绩排名

题意:模拟OJ的成绩排名。 输入:题数n、单位罚时m;之...

2020-03-05 14:17:18 106

原创 Week2 实验A 烷烃基判断

题意:6个原子5个化学键构成的烷烃基有5种,如图:6个原子分别标号1-6(没有固定的标号方法),输入5个数对代表5个化学键,输出烷烃基的类别。做法:根据不同类别烷烃基原子的度数特点区别。不同类别烷烃基1,2,3,4度原子个数如下表度数 1 2 3 4 n-hexane 2 4 3-methylpentane ...

2020-03-05 00:31:30 158 1

原创 Week2 作业B 倒水 bfs 隐式图

题意:给出A、B两个杯子的容量,通过执行一系列指令,最终某个杯子里有C容量的水。要求输出这一系列指令,fill A代表倒满A杯,empty A代表倒空A杯,pour A B代表将A中水倒入B中(要么B倒满,要么A倒空)做法:构造结点Status,a表示A杯中水的容量,b表示B杯中水的容量,由于最终要求输出每一步的具体操作,可以为每一个Status增加一个string c,记录转移方式。ma...

2020-03-03 22:52:12 2207

原创 Week2 作业A 迷宫 bfs

题意:输入5*5矩阵,1表示墙,0表示可走。找出从左上角到右下角的最短路径所经过的坐标(输入保证有唯一解)做法:bool型二维数组vis保存输入的01矩阵,1表示墙,0表示可走。map from保存每一个经过的坐标的前驱结点坐标。queue q保存每一层扩展时的中心结点。为方便层层扩展时遍历上下左右四个方向,定义数组dx[]={0,0,-1,1},dy[]={1,-1,0,0}。初始化...

2020-03-03 22:15:48 86

原创 CSP 201604-4 游戏 bfs 高维数组

题目:n*m的方格,某些时刻某些方格危险。求(1,1)到(n,m)的最短时间。注意,每个时间单位必须走,不能停。思路:每个点由(x,y,t)三维描述,vis数组也使用三维记录,-1表示危险,0代表可到达,>0代表最短步数。取(1,1,0),x、y、t同时扩展,判断条件,修改vis,入队列注意:1.时间维的range与x、y不同,没有危险的情况下最大200,由于有危险的时间&...

2020-03-01 00:17:51 146

原创 CSP 201409-4 最优配餐 bfs 多源

题目:n*n的网格,m个分店,k个客户,d堵墙。可以从任意分店给任意客户配餐,每一份餐走一单位距离花费为1,求最小花费。思路:最短路径,多起点多终点,可以将所有起点看作一个整体,所有起点一次性放入队列。int vis[][]记录每个点的信息,-2代表墙,0代表没有到达过但可以到达,>0代表订餐数。bool in[][]记录是否到达过。int dis[][]记录到达每一个顶点的最短...

2020-02-29 21:45:48 172

原创 C++计时

#include<ctime>#include<cstdio>int main(){ long start,stop; time(&start); long long result=2; for(long long i=1;i<=2*1e8;i++) result*=2; time(&stop); long run...

2020-02-20 17:28:46 83

原创 快速幂

快速幂的递归实现//快速幂的递归实现 //x为偶数 a^x=a^x/2*a^x/2//x为奇数 a^x=a^x/2*a^x/2*along long quickPow_recursion(long long a,long long x){ //递归边界 a^0=1 if(x==0) return 1; long long temp=quickPow_recursion(a,x/...

2020-02-20 17:25:12 93

原创 CSP 201912-2 回收站选址 map

#include<iostream>#include<map>#include<utility>using namespace std;map<pair<int, int>, int>mp;int xway[4] = { -1,0,1,0 };int yway[4] = { 0,1,0,-1 };int xway2[4] ...

2020-02-09 15:23:27 260

原创 cmd命令

进入E盘E:上一层目录cd..当前目录下的文件dir

2020-02-08 23:21:54 74

原创 刘汝佳 语言篇(一)

1.floor()函数返回类型是double为了减小浮点误差,floor(x+0.5)2.计算只包含加、减、乘的表达式对n的余数,可以每一步计算后取余,结果不变3.循环结构的两个问题:算术运算溢出和程序效率低下4.Windows下,输入完毕后按Enter、Ctrl+Z、Enter结束输入Linux Ctrl+D5.输入输出重定向freopen("input.txt...

2020-02-07 16:35:44 127

原创 Windows 终端python warning

C:\Users\ASUS>pythonPython 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32Warning:This Python interpreter is in a conda environment, but the envir...

2020-02-07 16:06:09 535 4

原创 linux命令

查看可执行文件64位/32位 大/小端file filename查看系统 64位/32位 大/小端file /bin/ls下载公钥sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50安装VMware toolssudo ./vmware-install....

2019-11-28 23:05:33 80

原创 Head First HTML与CSS

P114 P594元素P245 HTML指南P292 CSS指南P300 属性P314 font-family

2019-07-18 14:04:47 119

原创 前端学习笔记(二)

<style> p{ color:maroon; }</style> color不继承给a 特定程度相同的选择样式表中最后的 元素名.类名 与C++恰好相反

2019-07-17 08:24:08 74

原创 MATLAB 交互

从记事本读数据 注意修改当前目录 当记事本中只有数据时 load('test.txt');%存入test变量A=load('test.txt'); 记事本中数据结构比较复杂 [name,score,sex]=textread('test_biaoge.txt','%s %n %s',4)保存数据 %s以后只用MATLAB打开,且用户无法直接查看save fil...

2019-07-16 14:46:12 512

原创 前端学习笔记(一)

id不能有空格 <a>的属性 title target href 图片缩略图打开看大图,直接连接到图片并不是一个好的选择,因为通常会有上下文 HTML中用width和height建议只用来显示图片本来的大小...

2019-07-14 08:33:28 93

原创 C++语言程序设计(郑莉) 10用构造函数定义类型转换

c++ 中可以通过构造函数,来自定义类型之间的转换。一个构造函数,只要可以用一个参数调用,那么它就设定了一种从参数类型到这个类类型的类型转换。这里的类型转换操作符可以省去,因为默认情况下,类的构造函数所规定的类型转换,允许通过隐含类型转换进行cout<<Line(Point(1), Point (4)) .getLen () <<end1;cout<<...

2019-06-30 15:11:40 302 1

原创 C++ Skill 009 sort函数

CSP 201712-1 最小差值 sort函数※sort函数对pair数组排序//按照pair的second降序排列bool compare(pair<int,int>a,pair<int,int>b){ return a.second > b.second;}sort(DegreeSort, DegreeSort + N, compare);...

2019-06-30 14:31:49 137

原创 C++语言程序设计(郑莉) 09 结构体和联合体

结构体struct 结构体和类的唯一区别在于,结构体和类具有不同的默认访问控制属性:在类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型(private) ;在结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有类型 (public) 。 引入结构体,是为了保持和C程序的兼容性 C 语言只有结构体,而没有类 .C语言的结构体中只允许定义数据成员,不允许定义函数成员...

2019-06-29 20:35:09 243

原创 C++语言程序设计(郑莉) 08 类与对象

面向对象程序设计的基本特点 抽象 在面向对象的软件开发中,首先注意的是问题的本质及描述,其次是解决问题的具体过程。 对一个问题的抽象包括两个方面:数据抽象和行为抽象 封装 继承 多态 特殊多态性:表面的多态性 强制多态 数据类型转换(显式或隐式) 重载多态 函数重载 运算符重载 一般多态性:真正的多态性 类型参数化多态 模板(函数...

2019-06-29 20:09:40 202

原创 C++语言程序设计(郑莉) 07 函数

递归调用 递归算法的实质是将原有的问题分解为新的问题,而解决新问题时又用到了原有问题的解法。最终分解出来的问题,是一个已知解的问题。 对同一个函数的多次不同调用中,编译器会为函数的形参和局部变量分配不同的空间,它们互不影响。 参数传递 值传递 当发生函数调用时,给形参分配内存空间,并用实参来初始化形参 一旦形参获得了值便与实参脱离关系,此后无论形参发生了怎样的改变,都不会影...

2019-06-29 16:17:26 411

原创 C++ Skill 008 随机数

伪随机数 int rand(void)for(int i=0;i<10;i++) cout<<rand()<<endl; 每次运行这个程序产生的随机序列都是相同的 给rand一个称为“种子”的初始值 如果不设置种子,默认种子为1 设置种子不是通过函数参数,而是通过另一个函数srand ...

2019-06-29 12:22:33 131

原创 C++语言程序设计(郑莉) 06 变量和表达式的底层实现机制

变量的实现机制 反汇编 是指将机器语言代码转换成与之对应的汇编语言代码的过程。由于汇编语言与机器语言的指令具有一一对应的关系,而且汇编语言比机器语言更便于人们理解,所以观察可执行文件反汇编后的代码,便于理解程序的工作机制。 汇编语言代码 是以指令为单位的,每条指令占一行,每条指令对应于一条CPU 可以直接执行的指令。每条指令都包括操作符和操作数,操作符表示这一条指令的操作类型,...

2019-06-28 23:03:31 127

原创 C++语言程序设计(郑莉) 05 自定义数据类型

枚举类型 结构类型 联合类型 数组类型 类类型 typedef 为已有数据类型另外命名 typedef double Area,Volume;Area a;Volume v;enum 方便数据合法性的检查 枚举元素按常量处理,不能赋值(声明时可以赋值);枚举变量可以赋值 枚举变量可以进行关系运算,此时会隐式转换为整型 整数值赋给枚举变量需要显式强转(两种,stati...

2019-06-28 22:20:22 94

原创 C++语言程序设计(郑莉) 04算法的基本控制结构

switch caseswitch(表达式) { case 常量表达式:语句 …… default:语句 } switch 语句后面的表达式可以是整型、字符型、枚举型。 每个 case 分支可以有多条语句,但不必用{}。 当若干分支需要执行相同操作时,可以便多个 case 分支共用一组语句。 循环...

2019-06-28 20:04:03 144

原创 C++语言程序设计(郑莉) 03数据的输入与输出

在 c++中,将数据从一个对象到另一个对象的流动抽象为"流"。流在使用前要被建立,使用后要被删除。从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作。数据的输入与输出是通过流来实现的,cin 和 cout 是预定义的流类对象。cin用来处理标准输入,即键盘输入。 cout 用来处理标准输出,即屏幕输出。 预定义插入符<< 预定义提取符>> IO格式...

2019-06-28 19:33:15 200

原创 C++ Skill 007 输出流格式控制操作

#include<iomanip>1.输出宽度右对齐,默认空格填充,不截断。cout.width(5);cout << dbl<< endl;cout << setw(5) << dbl<< endl;2.填充作用域为所有cout,可以覆盖cout.fill('*');cout &l...

2019-06-28 19:30:10 136

空空如也

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

TA关注的人

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