自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-03-07

问题描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式输入的第一行为一个正整数n (1<=n<=10)。  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式输出n行,每行为输入对应的八进制正整数。【注意】  输入的十六进制数不会有前导0,比如012A。  输出的八进制数也不能有前导0。样例输入2  39  123ABC样例输出71  4435274【提示】  先将十六进制

2021-03-07 11:01:04 150

原创 hdu2544(最短路径/三种算法)

hdu2544"最短路"目录hdu2544"最短路"Dijkstra算法(多米诺骨牌模型)Bellman-Ford(警察问路模型)Floyd-Warshall(动态规划思想)Dijkstra算法(多米诺骨牌模型)复杂度:O(E*logV)AC代码:#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include&

2021-02-23 19:24:44 373

原创 hdu1698(线段树/区间修改/求和)

hdu1698"Just a Hook"题意:有一个区间s [1,n],每一节si的初始价值为1。定义操作:x y val,将区间[x,y]中的每一个小节的价值改为val。问:经过Q次操作后总区间的价值是多少。1<=n<=1e50<=Q<=1e5算法/数据结构:线段树注意使用:long long scanf("%I64d")吐槽:3*10e5我觉得不需要长整型,但不知道为甚用int就是错!艹,搞这个点搞了一晚上。代码:#include<iostream&g

2021-02-21 22:32:55 323

原创 hdu1394(线段树求逆序数)

hdu1394(线段树求逆序数)题意给出一串数字a,可以进行如下操作:将该串数字第一个数字a0放到该串数字的最后位置,形成新的数字串,求操作过程中最小逆序数。思路1)求一串数字的逆序数:暴力法:对每一个数字x,判断x与x之前出现了多少个比x大的数字。复杂度为O(nn).利用线段树:因为数字串出现的数字只能在区间0~n,可以利用线段树对出现的数字进行统计。对每个x,查询区间 [x+1,n-1] 已经有多少个被计数的数字,它们的合计就是逆序数。2)用初始的逆序数推到移动第一个数到最后之后的逆序数

2021-02-21 19:10:28 242

原创 hdu1166(线段树)

#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>using namespace std;const int maxn = 5e4+3;struct Node//营地{ int beg, end, num;//区间的开始和结束位置,该区间的人数}tree[m

2021-02-21 16:02:41 79

原创 hdu4632:区间dp+容斥原理+记忆化搜索

hdu4632:区间dp+容斥原理+记忆化搜索题意:求给出字符串str中子序列(注:不是子字符串)是回文串的个数。思路:状态设计:dp[s][e]表示str[s]~str[e]区间的回文子序列个数初始化/递归结束条件:1)s>e:表示空串,dp[s][e]为零;2)s==e:单个字符构成一个回文串,返回1;状态转移:dp[s][e]的上一个状态是dp[s][e-1]或dp[s+1][e],将它们加起来,区间dp[s+1][e-1]中的回文子序列是被重复计数的,因此需要减去这个区间的d

2021-02-09 12:04:24 348

原创 hdu1401“Solitaire“

hdu1401"Solitaire"(双向广搜)题意有一个8X8的棋盘,上面有4个棋子,棋子可以上下左右移动。给定一个初始状态和一个目标状态,问能否在8步之内到达。注意点(我的错误)移动一步,棋子落到另一个棋子上是,才可以移动两步。(容易理解为即可以移动一步,也可以移动两步。)棋子不区分顺序,所以需要按一定规则排序后才可以确定一个状态。思路使用8维数组vis*标记,进行查重。有八个方向向量vex*。伪双向广搜:并不是真的从两个初始一起搜索,分别从目标状态、初始状态使用bfs搜索4步,

2021-02-04 19:02:53 387

原创 hdu2844“Coins“多重背包

hdu2844"Coins"多重背包一些感受(废话)看了一下,可以将多重背包转化为0/1背包,将某种多个的硬币,对每一个硬币,每一个dp状态都有选择/不选择的0/1方案,由于硬币数可能很多,网上有博主使用二进制优化方案。这种方案是我第一次接触。以后需要学习一下。链接:二进制优化,转化为0/1背包解决的方案我的思路一开始,我想要定义一个数组st[n][m],表示dp[m]状态硬币A[n]对应的数量,状态进行转移时,前状态必须有对应硬币剩余才可以进行转移(状态转移的硬币数量限制),但因为1<=n

2021-01-28 01:02:23 160

原创 hdu2159“FATE”完全背包

hdu2159“FATE”完全背包一、什么是完全背包有这样一个问题:在你面前放着n种宝石,每种宝石重量为wi,价值为vi,数量无限;你有一个最多可以放m重量的背包。现在你想在不超重的情况下,是你带走的宝石价值最大,问最大价值是多少?在这里,“完全”是指每一种宝石都有无数个,不是指背包能装多少物品(不是背包的属性)。dp用于保存背包的状态S(有某些必要的维度,如容量等)注意:在某一背包容量下的最大价值不一定是完全利用背包容量的!!!二、代码写了两个代码,注意区别:dp表示状态的方式不同。初始化

2021-01-26 01:36:36 324

原创 归并排序

归并排序#include<iostream>using namespace std;#include<queue>#include<cstdio>#include<cstdlib>const int maxn = 1e2+1;int arr[maxn];int temp[maxn];void merge(int beg, int mid, int end){ int i = beg, j = mid+1; int t = 0; whi

2020-12-27 09:57:51 100

原创 2020-10-31

利用栈实现的全排列数据结构学到栈了,了解到可以将递归函数的调用看作是函数的压栈,递归函数的结束返回上一层函数可以看作函数的出栈。之前用递归函数实现过全排列,现在用栈实现一遍。用栈的第k层保存第k层递归函数,每一层保存平行的变量。。。问题假设有一个盒子box[n],里面装着n个小球ball。有个条形、有凹槽的木块per[n],第一个凹槽放一个小球,接着放下一个,放满时,就完成一个排列了。但第一个凹槽可放的小球有n种肯,第二个凹槽有n-1种可能……最后一个凹槽有一种可能。所有可能就是n的阶乘#in

2020-11-23 19:19:35 169

原创 全排列(利用栈)

#include<iostream>using namespace std;#include<vector>//单个元素的结构体 struct Ball{ char ch;//元素 bool flag;//flag==true 时,该元素未被选择 };int main(){ vector<int> si;//该层元素从si.back()下标开始扫描box数组 vector<int> sc;//该层元素由sc.back()种机会

2020-10-31 21:31:29 1392

原创 利用栈解决汉诺塔问题

利用栈解决汉诺塔问题#include<iostream>using namespace std;#include<stack>//stl栈模板 #include<string>//定义一个解决汉诺塔的类 class HanNuoTa{ //保存要解决问题的规模与状态 (每一个规模对应一个状态) //当需要解决一个问题时将问题进行压栈 stack<int> m_n; //规模:即碟子的个数 stack<string>m_st

2020-10-21 13:45:24 911

原创 火星人数制(没有数字0,逢6进1)

火星人数制(没有数字0,逢6进1)思路:将1输入的10进制数字num转化6进制数字,每个数字用vector容器保存,然后转化为字母输出。关键是转化的方法,可以先解决6进制数字加一的情况,将数字num转化为6进制相当于一个由“0”开始的6进制数字循环加num次1.#include<iostream>using namespace std;#include<vector>void addone(vector<int>& arr)//6进制数加1

2020-06-05 15:55:27 680

原创 7-3 螺旋方阵

7-3 螺旋方阵 (15分)所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。本题要求构造这样的螺旋方阵。输入格式:输入在一行中给出一个正整数N(<10)。输出格式:输出N×N的螺旋方阵。每行N个数字,每个数字占3位。输入样例:5输出样例:1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9#include<ios

2020-06-03 23:05:54 532

原创 找数据(10分)

找数据(10分)题目内容:编写程序,找出一个字符串中的所有数据然后加9输出(实数或整数)。例如,China Daily | Updated: 2020-04-10 08:5.9,输出:20295-11714.9单个正号或负号不算数据,但+0,-0都是数据。字符串总长度不超过200.输入格式:一个带空格的字符串。输出格式:若干行数据。输入样例:China Daily ...

2020-05-01 22:31:56 235

原创 快速排序(思路 + c++实现例子)

快速排序(思路 与 c++实现例子)我的思路(由小到大排列):假设有一数组 arr = {……}(元素个数大于2)。取任意一个元素为基准数temp,这里取数组的首元素。把小于或等于temp的元素放在temp的左边,把大于或等于temp的元素放右边,就可以得到如下表排列的数组arr:小于或temp的元素基准数大于或等于temp的元素集合n1temp集合n2...

2020-04-05 23:23:54 288

原创 C语言递归剥洋葱

题目:7-21 剥洋葱 题目:输入格式:输出格式:输入样例:输出样例:题目:布告,布告! 应老师要求,我们要做一道打印图形的题目,这是程序员最基本的能力。 那废话不多说,我们来说要求的图形:AAAAAABBBAABCBAABBBAAAAAA就是外到内,从A到Z。每一层都是一种字母,最里面的一层为一个,即最中心的一个。输入格式:在一输入一个整数,即图形的层数。输出格式:如上述...

2020-02-10 16:31:28 871

空空如也

空空如也

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

TA关注的人

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