自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 10072. 「一本通 3.2 例 1」Sightseeing Trip

题意:给你一个n个点加权无向图,要你从里面找一个路径最短的环,每个点只能经过一次 ,如果存在这样的最短环则把路径给打印出来,如果有多个,打印一个出来即可。本题的重点是,如果用简单的用floyd求最小环,你会发现在求最短路的过程中有很多点是重复经过的。现在的问题是怎么找没有重复经过同一个点的最小环,每次修改最小环是都记录下当前的path我们可以做一个限制 就是k比i,j都大,假如说求u->i->j->k->v的,最小环,如果u k v都确定的情况下,只需要找通过i j的最小路程,

2020-12-01 20:16:10

原创 L1-006 连续因子 (20分)

一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<2​31​​ )。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。输入样例:630输出样例:35

2020-11-23 19:47:34 10

原创 PTA n个数求和(含测试样例)

本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。输入样例1:5

2020-11-23 18:50:32 30

原创 AC自动机 #10057. 「一本通 2.4 例 1」Keywords Search

给定 个长度不超过 的由小写英文字母组成的单词准备查询,以及一篇长为 的文章,问:文中出现了多少个待查询的单词。多组数据。输入格式第一行一个整数 ,表示数据组数;对于每组数据,第一行一个整数 ,接下去 行表示 个单词,最后一行输入一个字符串,表示文章。输出格式对于每组数据,输出一个数,表示文中出现了多少个待查询的单词。样例样例输入15shehesayshrheryasherhs样例输出3AC自动机的匹配过程分两种情况:(1)当前字符匹配,表示从当前节点沿着树边有

2020-11-13 21:51:25 23

原创 #10051. 「一本通 2.3 例 3」Nikitosh 和异或 字典树

给定一个含 个元素的数组 ,下标从 开始。请找出下面式子的最大值:,其中, 表示 和 的按位异或。输入格式输入数据的第一行包含一个整数 ,表示数组中的元素个数。第二行包含 个整数 。输出格式输出一行包含给定表达式可能的最大值。样例样例输入51 2 3 1 2样例输出6题目是 求两端不相邻的异或区间最大的和求区间异或值,其实是两端点的异或前缀和x⊕x=0所以 从l到r的异或相当于(从1到l)和(1到r)的异或然后我们可以定义一个sum数组来储存前缀的异或和,区间[l

2020-11-09 21:59:23 150

原创 #10022. 「一本通 1.3 练习 1」埃及分数(注释好理解)

在古埃及,人们使用单位分数的和(形如 的, 是自然数)表示一切有理数。如:,但不允许 ,因为加数中有相同的。对于一个分数 ,表示方法有很多种,但是哪种最好呢?首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。如:最好的是最后一种,因为 比 都大。注意,可能有多个最优解。如:由于方法一与方法二中,最小的分数相同,因此二者均是最优解。给出 ,编程计算最好的表达方式。保证最优解满足:最小的分数 。输入格式一行两个整数,分别为 和 的值。输出格式输出若干个数,自小到大排

2020-10-30 20:47:50 21

原创 求哈夫曼数的带权路径长度及编码

给出叶子节点,输出带权路径长度#include<queue>#include<stdio.h>using namespace std;priority_queue<int,vector<int>,greater<int> >q;int main(){ int n,x,i; scanf("%d",&n);//叶子节点个数 for(i=0;i<n;i++) { scanf("%d",&x

2020-10-30 17:11:11 112

原创 优先队列用法理解

priority_queue头文件为 #include 定义:priority_queue<Type, Container, Functional>Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆即从大到小排列

2020-10-27 21:56:07 7

原创 信息学一本通(1451:棋盘游戏)

题目描述在一个4*4的棋盘上有8个黑棋和8个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的。移动棋子的规则是交换相邻两个棋子。现在给出一个初始棋盘和一个最终棋盘,要求你找出一个最短的移动序列使初始棋盘变为最终棋盘。Klux说:“这么简单的题目,我都会做!”输入格式:第1到4行每行四个数字(1或者0),描述了初始棋盘接着是一个空行第6到9行每行四个数字,描述了最终棋盘输出格式:输出只有一行是一个整数n,表示最少的移动步数。输入样例#1:111100001110001010

2020-10-27 20:30:24 31

原创 背包理解

01背包有 N N N件物品和一个容量为 V V V的背包。第 i i i件物品的费用是 w [ i ] w[i] w[i],价值是 v [ i ] v[i] v[i],求将哪些物品装入背包可使价值总和最大。​for (int i = 1; i <= n; i++)for (int j = V; j >= w[i]; j–)f[j] = max(f[j], f[j - w[i]] + v[i]);完全背包有 N N N种物品和一个容量为 V V V的背包,每种物品都有无限件可用。

2020-10-16 16:38:02 11

原创 测试次数 2018届蓝桥杯b组真题

dp[i][j]=min(dp[i][j],max(dp[i][j-k],dp[i-1][k-1])+1);dp存的是测试次数i是第几个手机,j是当前手机测试到第几层,k是从k层扔下。dp[i][j-k]是从第k层扔没摔坏,所以可以从k再加k层dp[i-1][k-1]是第k层摔坏了,手机数减1,楼层-1#include<stdio.h>#include<algorithm>using namespace std;int dp[5][2000];int main()

2020-10-15 20:06:32 14

原创 2020-10-13

题目 2268: [蓝桥杯][2016年第七届真题]密码脱落时间限制: 1Sec 内存限制: 128MB 提交: 390 解决: 107题目描述X星球的考古学家发现了一批古代留下来的密码。这些密码是由A、B、C、D 四种植物的种子串成的序列。仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子输入输入一行,

2020-10-13 16:55:03 16

原创 Harmonic Number (II) LightOJ - 1245

求f(n)=n/1+n/2…n/n,其中n/i保留整数f(n)这个函数刚好关于y=x对称,对称点位sqrt(n);所以ans2-nn就可以求出来了#include<stdio.h>#include<cmath>#include<algorithm>#include<iostream>#include<string.h>using namespace std;typedef long long ll;int main(){

2020-10-05 18:31:28 5

原创 A Simple Problem with Integers POJ - 3468 线段树,数状数字

You have N integers, A1, A2, … , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask for the sum of numbers in a given interval.InputThe first line c

2020-10-05 17:55:39 16

原创 Leading and Trailing LightOJ - 1282

You are given two integers: n and k, your task is to find the most significant three digits, and least significant three digits of nk.InputInput starts with an integer T (≤ 1000), denoting the number of test cases.Each case starts with a line containing

2020-10-04 08:41:58 7

原创 第三周下 kmp

E - Period HDU - 1358题意求一串字符中的前缀中有多少最大周期数,例如“aaa”中,前两个“aa”最小周期长度为“a”,所以周期长度为2,前三个“aaa”的最小周期也是“a”所以周期长度为3;再如“aabaabaabaab”中前6个“aabaab”的最小周期长度为“aab”,所以周期为2.前9个有3个aab,所以周期长度为三输出第一个数是你所截取的字符串长度,第二个数是有几个循环周期aabaab”的前缀next[]数组的存储是这样的{0, 1, 0, 1, 2, 3}#inclu

2020-10-02 21:53:08 206

原创 Bash V1 V2 V3 V4 博弈

V2#include<stdio.h>#include<string.h>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); if(n%7=...

2020-09-29 08:46:37 11

原创 第四周下 数论

先分析下直线分割平面的情况,增加第n条直线的时候,跟之前的直线最多有n-1个交点,此时分出的部分多出的平面为(n-1)+1;折线也是同理,f(1)=2,f(2)=7,先画好前面n-1条折线,当增加第n条折线时,也就是增加了2n条和2n-1条他们连在了一起,他们各增加了2n,2(n-1)个交点,因为连在了一起,所以此时与图形新的交点为22(n-1)+1 所以推出f(n)=f(n-1)+4(n-1)+1,n>=3递推#include<stdio.h>#include<string.

2020-09-28 09:47:21 65

原创 第四周 欧拉回路

C - Door Man POJ - 1300Problem DescriptionYou are a butler in a large mansion. This mansion has so many rooms that they are merely referred to by number (room 0, 1, 2, 3, etc…). Your master is a particularly absent-minded lout and continually leaves door

2020-09-27 23:01:11 18

原创 第5周 线段树 树状数组

E - 敌兵布阵C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,

2020-09-27 20:14:41 25

原创 第六周,网络流

B - Drainage Ditches题意是求1到n的最大流量,EE算法我觉得掌握的还可以,就是有一个后悔的方式,其他和广搜一样#include <stdio.h>#include<algorithm>#include<string.h>#include <queue>#define N 205#define INF 0x7fffffff#define ll long longusing namespace std;ll g[N][N],

2020-09-27 19:45:25 11

原创 第三周 动态规划

G - 跑跑卡丁车 HDU - 1494DP;*可以用dp[i]表示在第i段的最小时间,可以用j表示能量槽的个数,最多15个状态*dp[i][j]:在第i段时的第j个能量槽满的状态下的最小时间,可以肯定最先时间为*dp[n][k]:n表示圈数,k=[1,14],到达15段的时候会自动清零,也不会得到能量*dp[i][j]=min(dp[i][j],dp[i-1][j-1]+a[i],dp[i-1][j+5]+b[i])*注释:dp[i][j]可以通过dp[i-1][j-1]不使用加速卡直接行使得

2020-09-27 19:32:28 11

原创 第二周下 最短路

E题 Candies POJ - 3159n个人,m条规则b比a多c个糖,问n比1多几个不知道为什么队列过不去,#include<stdio.h>#include<string.h>#include<queue>#include<stack>#include<algorithm>using namespace std;#define N 30005int dis[N],book[N],cnt,m,n;int head[

2020-09-27 19:23:20 8

原创 第二周上 二分和并查集

G - 棋盘游戏 (二分匹配)先考虑在棋盘上尽可能的放棋子,使得任意棋子不在同一行同一列,将棋盘的行看做左边的点集,棋盘的列看做右边的点集,若某个格子(i,j)可行,那么就从左 i 连到 右 j,这个二分图的最大匹配即为这个棋盘能放的最多棋子数。现要找出有二分图中有多少关键边,很明显关键边要在算出来的匹配中找,因此只需将棋盘点对应的边删除再求一次最大匹配,看匹配数是否减小,若减小了,则说明这个边也即棋盘的点是关键的,输出即可。...

2020-09-26 11:17:45 7

原创 第一周下 背包和记忆化搜索

A题 How many ways HDU - 1978题意 给你一张地图,地图上的数表示你获得的能量,问起点有多少种方式到达终点用记忆化搜索,把每个点能到达右下角的路径数给记录下来,下次再到达这个点的时候就可以直接应用的这数了#include <stdio.h>#include<algorithm>using namespace std;int m,n;int book[110][110],a[110][110];int dfs(int x,int y){

2020-09-26 09:40:14 10

原创 第一周 搜索和贪心

E题 Sticks UVA - 307深搜一直没广搜熟练,这个看了好多博客才理解,题意好懂,就是给你几根木棍问你能否拼成相同的长度L主要是需要剪枝(需要剪的地方真心多)1.L必须是sum的因子2.搜索过程中,如果前面的木棍没有成功,那么后面与它相同长度的木棍可以不用讨论3.从大到小排序4.如果一个木棍不成功 直接回溯#include<stdio.h>#include<string.h>#include<algorithm>using namesp

2020-09-25 21:54:38 13

原创 Play on Words

可知只有一个祖先,且最多只有两个点的入度,出度不一样,且差值为1.#include<string.h>#include<stdio.h>using namespace std;const int MAX = 105;int in[MAX],out[MAX],pre[MAX];int find(int x){ return x==pre[x]?x:pre[x]=find(pre[x]);}void Join(int x, int y){ int f

2020-08-11 09:14:43 31

原创 Power Strings

Given two strings a and b we define ab to be their concatenation. For example, if a = “abc” and b = “def” then ab = “abcdef”. If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way: a^0 = “” (t

2020-08-07 10:36:19 47

原创 manacher算法理解

这是一种求最长回文字串的算法。核心思想是如果回文串的子串也是回文串,那么这个子串关于主串中心对称而得的子串也是一个回文串。接下来要确定的就是通过j点所能确定的i点回文串的长度最多是多少。首先,将原串进行下述处理:串首添加分隔符,如 '@’每两个字符间添加分隔符,如‘#’3.串尾添加结束符(任意符号,加以区别,而且首尾符号不同)例如:原串 abcbama串 @#a#b#c#b#a#¥这样所有的情况都变成了奇数回文串的情况。接着用一个辅助数组p[]来存以新串的每个字符为回文中心

2020-08-06 16:02:00 35

原创 小希的迷宫 HDU - 1272

上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路)。小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路。比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8。Input

2020-07-29 10:28:05 41

原创 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 HDU - 2191 多重背包

Input输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。Output对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个

2020-07-27 09:34:00 19

原创 c

Drink Accepts: 1896 Submissions: 4596 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description我们有 nnn 种不同的饮料,每种饮料有无限多瓶,第 iii 种饮料一瓶提供 x[i]x[i]x[i] 毫升的水分,包含 y[i]y[i]y[i] 卡路里。现在我们需要选择一种饮料一直喝,直到补充了至少 mmm 毫升

2020-07-26 16:25:23 65

原创 A计划 HDU - 2102

可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑

2020-07-25 18:47:38 20

原创 学生选课系统

#include<stdio.h>#include<string.h>#include<stdlib.h>int N1,N2,kk1,kk2,kk3,dfg=0;struct couse * head1;struct student * head2;struct couse//课程信息结构体{int num1;char name1[20];int score;int nelepeo;//课程已选人数int Melepeo;//课程人数上限st

2020-06-05 21:45:40 687

原创 POJ2531 Network Saboteur DFS

A university network is composed of N computers. System administrators gathered information on the traffic between nodes, and carefully divided the network into two subnetworks in order to minimize traffic between parts.A disgruntled computer science stud

2020-05-22 21:12:49 42

原创 Roadblocks POJ - 3255 SPFA

Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best friends. She does not want to get to her old home too quickly, because she likes the scenery along the way. She has decided to take the second-shortest rather than the

2020-05-12 19:23:50 56

原创 Ordering Tasks UVA - 10305

John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task isonly possible if other tasks have already been executed.InputThe input will consist of several instances of the problem. Each instance begins with a lin

2020-05-10 19:59:40 27

原创 Legal or Not 拓扑排序

ACM-DIY is a large QQ group where many excellent acmers get together. It is so harmonious that just like a big family. Every day,many “holy cows” like HH, hh, AC, ZT, lcc, BF, Qinz and so on chat on-line to exchange their ideas. When someone has questions,

2020-05-10 16:51:23 52

原创 博弈

此类问题一般有如下特点:1、博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。2、博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负。3、公平博弈。即两人进行决策所遵循的规则相同。理论铺垫:1、定义P-position和N-position:其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-posi...

2020-04-30 22:10:27 137

原创 寻找循环节大集合

Number Sequence HDU - 1005 对我来说为数不多的水题#include<stdio.h>#include<string.h>#include<queue>#include<vector>#include<algorithm>using namespace std;int p[1002];int ma...

2020-04-29 15:36:25 35

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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