- 博客(96)
- 收藏
- 关注
原创 Redis中ZSET的ZCARD操作的时间复杂度
最近要用到Redis的ZSET结构,在某个Redis命令介绍的网站上标注着ZSET的ZCARD命令的复杂度是O(1)。但我的代码里ZCARD是个频繁的操作,以防万一,我下载了Redis的源码,找到了ZCARD操作相关的代码。unsigned long zsetLength(const robj *zobj) { unsigned long length = 0; ...
2020-03-04 16:33:42
4134
2
原创 YTU_OJ 1720 最少硬币问题
Description设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。 对任意钱数0≤m≤20001,设计一个用最少硬币找钱m的方法。 对于给定的1≤n≤10,硬币面值数组T和可以使用的各种面值的硬币个数数组Coins,以及钱数m,0≤m≤20001,计算找钱m的最少硬币数。Input输...
2018-08-14 21:52:14
19058
原创 洛谷P1880 石子合并【区间型动态规划】
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入输出格式输入格式:数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式:输出共...
2018-08-14 14:45:16
18611
1
原创 YTU 1012: A MST Problem
DescriptionIt is just a mining spanning tree ( 最小生成树 ) problem, what makes you a little difficult is that you are in a 3D space.InputThe first line of the input contains the number of test cases in th...
2018-03-21 16:19:34
18524
原创 邻接表实现Dijkstra最短路径算法
#include <iostream>#define INF 9999using namespace std;struct node{ int node,next; int weight;}edge[10000];int first_arc[300],cnt;void addEdge(int x,int y,int w){ edge[cnt].node=y; e...
2018-03-18 19:34:30
21632
原创 泊松分酒(深搜)
泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。要求你只用3个容器...
2018-02-10 18:25:22
18566
原创 JAVA课程设计 推箱子小游戏
运行示例:图形界面由swing组件构成生成地图的算法如下创建地图算法(produceMap):先将二维数组全置为1,代表初始状态全为墙。先随机产生两个不重合的点,一个作为人的起点,另一个作为箱子的起点。从起点开始,随机朝四个方向走一定的步数,若走到的点不是空地,即对应数组元素不为0,则将该点设为空地,即数组元素设为0。将地图分为左上、左下、右上和右下四个区域,并设置四个变量
2017-12-17 14:18:02
31566
4
原创 HDU 1254 推箱子(广搜+优先队列)
Problem Description推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推箱子而不能拉箱子,因此如果箱子被推到一个角上(如图2)那么箱子就不能再被移动了,如果箱子被推到一面墙上,那么箱子只能沿着墙移动.现在给定房间的结构,箱子的位置,搬运工的位置和箱子要被推去的位置,
2017-11-21 20:28:27
18616
原创 JAVA作业 简单的计算器
public class Main_Class { public static void main(String args[]) { ComputerFrame frame=new ComputerFrame("MyComputer"); frame.setBounds(100,100,700,800); }}import java.awt.*;impo
2017-11-18 16:18:16
18848
原创 蓝桥杯 算法训练 表达式计算
问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式 输入一行,包含一个表达式。输出格式 输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。#inclu
2017-11-16 18:47:56
18663
原创 八皇后问题 递归求解
#include #include #define N 8using namespace std;int board[N+1],cnt;bool judge(int l,int n)//判断在第l行第n个位置放是否合法{ for(int i=1; i<=l-1; ++i) if(board[i]==n||abs(board[i]-n)==abs(i-l))
2017-10-28 13:14:17
18351
原创 洛谷P2015 二叉苹果树(树状动归)
题目描述有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树2 5 \ / 3 4 \ / 1 现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最
2017-10-27 19:08:29
18847
原创 加分二叉树(区间动态规划)
Description设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数若某
2017-10-21 17:22:26
18948
原创 迷宫问题(广度优先搜索,输出最短路径)
Sample Input15 16.**.***.***.******.***..**.*.*.**.***.***.******.***..**.*.***.***.***.***.***.***.......E.**.***.***.*.****..**...*...*.*....*.*...*.****.*.*.**.*..*....*...**...***.
2017-09-19 18:55:42
20688
原创 HDU-2191 珍惜现在,感恩生活(多重背包,二进制优化)
Problem Description急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?Input输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(
2017-09-12 19:03:08
18298
原创 POJ-2342 Anniversary party(没有上司的晚会) 树状动归
Anniversary partyTime Limit: 1000MSMemory Limit: 65536KTotal Submissions: 9438Accepted: 5435DescriptionThere is going to be a party to celebrate the 80-th Anniv
2017-09-12 18:35:42
18366
原创 FZU - 2195 检查站点
在山上一共有N个站点需要检查,检查员从山顶出发去各个站点进行检查,各个站点间有且仅有一条通路,检查员下山前往站点时比较轻松,而上山时却需要额外的时间,问最后检查员检查完所有站点时所需要的额外时间最少是多少。Input包含多组数据 每组数据输入第一行为一个整数N 表示站点个数(1<=N<=100000),接下去N-1 行 每行3个整数 x,y,z(1<=z<=10000)
2017-09-12 17:03:21
18705
原创 n皇后问题 栈操作
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上)。你的任务是,对于给定的N,求出有多少种合法的放置方法。要求利用栈的操作解决此问题。借此熟悉栈的相关操作。思想方法仍然是回溯。#include #include using namespace std;typedef struct{
2017-08-29 11:57:31
19684
原创 POJ 1797 Heavy Transportation(最大生成树)
Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand business. But he needs a clever man who tells him whether there really is a way from the place his cu
2017-08-06 14:46:44
18383
原创 已知二叉树的前序序列和中序序列,求二叉树的后序序列
#include #include int pre_p=1,pre[1001],in[1001],n,count_print;//pre_p用于遍历前序序列//pre为前序序列数组,in为后序序列数组,n为二叉树中的元素个数,即序列长度,count_print用于规范输出格式typedef struct Node{ int data; struct Node *lchil
2017-08-01 10:07:25
19765
原创 数据结构课程设计——一个简单的停车场管理系统
题目要求:刚开始在Codeblocks下用C语言写的,但是用指针传递参数的时候总是出问题。后来就用C++,但是调用了C的输入输出和文件操作的头文件,所以代码都是C的main.cpp#include #include #include #include #include #include #include #define N 100using namespace std;
2017-06-24 21:10:45
42254
5
原创 数据结构练习题5
5.1#include using namespace std;int f(int *a,int i){ if(i>99) return 0; else return f(a,++i)+a[i];}int main(){ int a[100],i; for(i=0;i<100;++i) { a[
2017-05-15 17:48:10
18689
原创 OJ-3134 动态规划基础题目之数字三角形
Description73 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 st
2017-05-07 16:44:33
18761
原创 OJ 2924 Problem A 文件操作--二进制文件读入
Description现有100名学生的姓名(name)、学号(num)、英语(English)、数学(Math)、语文(Chinese)成绩存储在一个二进制文件student.dic中(姓名用char[20],学号和各科成绩用int存储),现要求将指定行数的学生信息输出,每条信息占一行。前5行学生信息为:akdh 13773 84 83 66fjka 30257 15 14
2017-05-01 15:45:24
20229
原创 C语言综合实践7.18
main.c#include #include #include #include #define MaxSize 80typedef struct{ char data[MaxSize]; int length;} SqString;void ShowMenu();void OpenFile(FILE *[]);int MakeCh
2017-04-22 16:17:54
18581
原创 C语言课程设计-模拟银行系统
main.c#include #include #include #include #include #define MaxNum 200#define N_P 6typedef struct{ int AccountNumber[3]; char name[20]; char password[N_P+1]; unsig
2017-04-22 16:13:23
24766
5
原创 OJ-2204
#include #include typedef struct LNode{ int data; struct LNode *next;}LinkList;int main(){ int n,i,*data; LinkList *s,*L,*pre; scanf("%d",&n); data=(int *)mal
2017-03-22 15:19:21
18465
原创 N!的质因子分解
方法是对1~n每个数进行质因子分解,然后把每个质数出现的次数都加起来。生成质数表用的是筛选法求素数。#include <stdio.h>#include <stdlib.h>#include <math.h>#define MAX_N 60000//N的最大值#define MAX_ITEM 7500//MAX_N中的质数的估计个数int pri...
2017-03-17 20:03:06
20436
原创 OJ-1328 三角螺旋阵
Description方阵的主对角线之上称为“上三角”。请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。Input程序运行时,从标准输入获得整数n(3~20)Output程序输出:方阵的上三角部分。要求格式:每个数据宽度为4,右对齐。————————————————
2017-03-10 20:58:15
18803
原创 寒假的比较无聊的小程序
大概就是输入路径打开一个加密后的文本文件,然后从给出的选项中选择或自定义一个口令,然后不断输入这个口令,就会显示解密后文本文件中的文字。另有一个闹着玩的防复制功能。。当然,还有配套的加密文本文件的程序。。是把我的期末作业稍作修改而成的。。就是这样。main.c#include #include #include #include #define N1 6#define N2
2017-02-21 16:57:23
18460
原创 OJ-1042 筛法求素数
Description用筛法求之N内的素数。InputNOutput0~N的素数#include #include #include int is_prime(int);void filter(int *,int,int);int main(){ int n,*p,i; scanf("%d",&n); p=(int*)
2017-02-07 17:31:16
18568
原创 OJ-1007 Redraiment猜想
Descriptionredraiment在家极度无聊,于是找了张纸开始统计素数的个数。 设函数f(n)返回从1->n之间素数的个数。 redraiment发现: f(1) = 0 f(10) = 4 f(100) = 25 ... 满足g(m) = 17 * m2 / 3 - 22 * m / 3 + 5 / 3 其中m为n的位数。 他很激动,是不是自己发现了素数分布的规律了! 请你设计
2017-02-06 16:56:40
18853
原创 OJ-1003 Redraiment的遭遇
DescriptionRedraiment的老家住在工业区,日耗电量非常大。是政府的眼中钉肉中刺,但又没办法,这里头住的可都是纳税大户呀。 今年7月,又传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。但迫于压力,限电制度规则不会太抠门,政府决定从7月1日停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,一次下去,每次都比上一次晚一天。 Redraiment可是软件专业的学生,
2017-02-04 17:39:50
19236
原创 期末作业——电子词典
#include #include #define N 8000struct vocabulary{ char english[20]; char chinese[20];};int search(char *,struct vocabulary *);int main(){ FILE *fp; struct vocabulary voc[8000]
2017-01-05 10:47:35
18716
原创 期末作业——石头剪刀布游戏
#include #include #include #include #include void main_menu();int make_choice();void sub_menu();void chip(char,char *);int fight(char *,char *);//参数为两名玩家的名字//如果前者赢了后者,返回1,;如果后者赢了前者
2017-01-04 17:05:44
19135
原创 期末程序设计——利用位运算加密
#include #include #define N_P 8#define N_K 3int main(){ unsigned char password[N_P+1],key[N_K+1]; //如果不加一的话,最后加的'\0'可能会占用下一个数组的位置 int en_password[N_P+1]; int i,j; vo
2017-01-04 16:57:56
18275
原创 第十六周-学生信息排序
#include #include #define N 5struct Student{ char name[20]; char num[10]; //这里学号较长,必须用字符串表示 char gender; char department[20];};int main(){ int i,j; //struct Student
2016-12-20 17:04:13
18546
原创 第十六周-职工信息结构体
#include #include struct Staff{ char name[20]; int age; int salary;};int main(){ int i,j; struct Staff worker[5]; for(i=0; i<5; ++i) { j=0; do
2016-12-20 17:03:42
18546
原创 第十六周-计算该日在本年中是第几天
#include #include typedef struct{ int year; int month; int day;} y_m_d;int main(){ y_m_d date; int days(y_m_d); //y_m_d是自定义的类型 int day_sum; scanf("%d%d%d",&date.y
2016-12-20 17:02:53
18470
原创 第十六周-学生成绩处理2
#include #define N 100struct Student{ int num;//学号 int c;//C语言成绩 int math;//数学成绩 float GPA;//学分绩};int main(){ int n; //定义结构体数组存放多名同学的成绩 struct Student stu[N]; pri
2016-12-20 17:01:50
18385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人