- 博客(22)
- 收藏
- 关注
原创 【数据结构——栈】中缀表达式转化为后缀表达式——Java
中缀表达式转化为后缀表达式的主要过程:1:如果遇到数字,则直接输出;2:如果遇到左括号,则将左括号放入栈中;3:如果遇到右括号,则将栈中的操作符输出,直到遇到左括号,将左括号弹出;4:如果遇到操作符 c: i:若栈为空,则直接将 c 压入栈中,并结束步骤4; ii:若栈顶的操作符 t 优先级不小于 c,则将 t 出栈,重复 i 和 ii; iii:将 c 压...
2019-08-21 15:43:02
316
原创 Python3网络编程——TCP服务器和客户端
1、创建 TCP 服务器:'''此脚本创建一个TCP服务器,他接受来自客户端的消息,然后将消息加上时间戳前缀并发送回客户端'''#!/usr/bin/env pythonfrom socket import *from time import ctimeHOST = '' #对bind()方法的标识PORT = 21567 #端口号BUFSIZ = 1024AD...
2019-04-15 23:56:13
656
1
原创 POJ 1988-Cube Stacking
点击链接打开题目题目大意:N个方块、P个操作。操作分为两种:(1):"M x y "表示将含有编号x的方块整体放在含有y的方块整体的上面;(2):“C x”表示询问在x下方有多少个方块?(N解析:明显的并查集,在并查集的基本操作中加入两个数组,一个记录该子树中元素的个数,一个记录该盒子上面盒子的个数。#include #include using n
2017-05-26 23:02:00
237
原创 HDU 5835-Danganronpa
点击链接打开题目贪心算法,每次都拿取符合条件的个数最多的那堆火药#include #include using namespace std;//寻找主体火药最大值的位置int zfind(int a[],int n,int bef){ int big=a[0],p=0; for(int i=1;i<n;i++) { if(i!=bef) {
2017-05-24 23:31:06
277
原创 HDU 1312
点击打开题目求图中的最长路,深搜水题代码:#include #include using namespace std;char room[25][25];//用矩阵储存每个点int p[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};//表示上、下、左、右四个方向int num;//所求的最长长度int w,h;//表示矩阵的长和宽//用深
2017-05-18 23:52:23
262
原创 HDU-2191 完全背包
点击链接打开此题目题目大意:有n个经费和m种大米,每种大米都只有有限袋,且每种大米有特定的重量和价格。求最多用n个钱可以购买的大米重量最大为多少?题目解析:开始的时候以为是要用贪心算法来求解的,但是一直WA,百思不得其解,无奈看了网上的讲解,才知道了问题所在。 为什么不能用贪心算法呢?在求最优解的问题中,最优解问题大部分都可以拆分成一个个的子问题,我们常
2017-05-12 20:09:14
385
原创 POJ 1200-Crazy Search
点击此链接打开题目题目大意:给出一个字符串,里面共包含NC种字符,求字符串中长度为N的字符串的个数(不包含重复子串)。解析:因为题中字符串共有NC中字符,且字符是由ASCII码存储的,所以可以将每个长度为N的子串转化为NC进制的整数,并用hash[]记录每个NC进制的整数是否出现过,进而求出所求字符串个数。下面是AC了的代码:#include #include #i
2017-05-10 22:38:08
297
原创 HDU 4561-连续最大积
点击此链接打开题目题目解析:1:将所给的一组数据以“0”为间隔分为m段,定义一个数组F[10001][4](F[i][0]、F[i][1]、F[i][2]、F[i][3]分别表示第i段数据中±2的个数、负数的个数、第一个负数所在的位置、最后一个负数所在的位置);2:用Max记录所求长度,初始化为0。3:当F[i][1]是偶数时,Max=max(Max,F[i][0]);
2017-05-07 17:26:29
358
原创 ZOJ 1093-Monkey and Banana
点击此链接打开题目题目大意:给出n种方块,每种方块有无限个,且每个方块可以以任意边作为长、宽、高。要求将这些方块摆成一摞,且要满足上面的方块的长小于下面方块的长、上面的方块的宽小于下面方块的宽,求这些方块能摆放的最高高度。题目解析: 1:因为每个方块可以以任意边作为长、宽、高(x、y、z),所以每种方块有6种不同的摆放形式。为了简化问题,我们将其看作6种不同类型
2017-05-07 16:10:45
275
原创 HDU 1574-RP问题
点击打开题目链接解析:因为对于每个事件都有两个选择(要么发生、要么不发生),所以可以用动态规划来求解。因为对于每件事发生时的收益与当前的RP值有关,所以应该用RP值作为状态。用dp[i]表示RP为i时的最大收益,状态转移方程为:dp[i+a]=max(dp[i+a],dp[i]+c)(a为变化值、c为收益值)。不过RP可以为负,且分析题意可知RP∈[-10000,10000],所以
2017-05-07 14:08:51
271
原创 HDU 1007-Quoit Design
点击打开题目链接题目大意:给出二维平面上的n个点,求出其中最近的两个点的距离的一半。解析:这道题首先想的是暴力枚举,然而n的范围是【0,100000】,使用暴力的话一定会超时的。 然后想到分治法:将n个点按照x坐标排序,并将其分为左右两部分,分别求出其最小距离并合并。要注意,因为将所有点分成两部分了,所以没有考虑其中一点在左一点在右的情况。假设左右两部分
2017-05-06 15:35:32
417
原创 HDU 1172-猜数字
点击打开题目——HDU 1172 这是一道比较简单的题。如果直接从正面解题,因为约束条件非常繁琐,所以实现起来比较麻烦。由于4位数只有10000-1000个,并且测试的数据不超过100组,所以可以采取枚举的方法,对每个四位数进行N次判断,如果N个条件全部符合,则说明当前四位数可能是正确答案。 (!!!注意题目问的是能否确定这个四位数)#inclu
2017-05-04 19:40:55
410
原创 CSU-1729_齿轮转动
点击链接打开题目:CSU-1729-齿轮转动 解析:对于这道题来说,首先想到的是爆搜,然后优化。建立一个数组dp[1005][1005]用来动态存储在不同状态下形成回文符要删除的最小齿轮个数(其中dp[i][j]表示从第i到j个字符间要删除的最小字符个数)。 然后最重要的是状态压缩方程:当gear[i]=gear[j](用gear[10001]存储初始齿轮状态)
2017-04-19 00:24:19
277
原创 HDU-1234_开门人和关门人
题目链接:HDU-1234一边读入一边记录,题目比较简单,直接放代码:#include #include #include using namespace std;int main(){ string opener,downer;//用来记录当天关门人和开门人 int N; cin>>N; while(N-->0) { string now;//表示正在输入的人
2017-04-18 19:50:14
219
原创 POJ-1101_The Game
The Game POJ - 1101题目大意:由w*h个小正方形组成的长方形板、每一个小正方形可能会包括一个游戏的块,如下图所示。 这个游戏的一个最重要的方面是判断两个块会不会由符合下列要求的路径连接。 1.路径是由直的部分组成,每个部分或水平或垂直。 2.路径不能跨过其它的游戏方块。 (路径可以包括长方形板的外延一圈) 要求找到一条
2017-04-18 19:11:04
579
原创 HDU-1864-最大报销额
题目:最大报销额 HDU - 1864现有一笔经费可以报销一定额度的发票。允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类),要求每张发票的总额不得超过1000元,每张发票上,单项物品的价值不得超过600元。现请你编写程序,在给出的一堆发票中找出可以报销的、不超过给定额度的最大报销额。Input测试输入包含若干测试用例。每个测试用例的
2017-04-09 19:21:02
226
原创 POJ-1661-Help Jimmy
题目:Help Jimmy POJ - 1661"Help Jimmy" 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动
2017-04-08 21:57:54
442
原创 HDU-1176-免费馅饼
题目:免费馅饼 HDU - 1176都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆
2017-04-07 15:06:45
203
原创 POJ-1163-The Triangle
题目:73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts
2017-04-07 14:44:47
220
原创 链表类的声明及定义
这个代码将链表类的声明、定义及测试写在一起了。可供初学者更好的学习链表。’#include "stdafx.h"#include using namespace std;class LinkList { private: struct node { //链表节点定义 int data; //链表数据类型 node *next; }*p;
2017-04-05 17:55:26
14732
1
原创 OpenJ_Bailian 2811——熄灯问题
题目:熄灯问题OpenJ_Bailian - 2811有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。
2017-04-05 17:48:58
441
原创 CSU-1120——病毒
题目:CSU-1120——病毒你有一个日志文件,里面记录着各种系统事件的详细信息。自然的,事件的时间戳按照严格递增顺序排列(不会有两个事件在完全相同的时刻发生)。 遗憾的是,你的系统被病毒感染了,日志文件中混入了病毒生成的随机伪事件(但真实事件的相对顺序保持不变)。备份的日志文件也被感染了,但由于病毒采用的随机感染方法,主日志文件和备份日志文件在感染后可能会变得不一样。 给出被感染的主日志和备份
2017-04-05 00:28:45
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人