
ACM划水体验
文章平均质量分 59
大二体验了一把ACM,记录一些做过的东西。
小小的香辛料
天落九重影,君便晓黎明炫目。
展开
-
Python翻转字符串(动态规划法)
上次面试面试官问我python翻转字符串的方法,知道几种说几种。我印象中说了reverse()、切片、倒序打印,还有啥忘了。今天突然想到动态规划法,可惜当时没想到QAQ。原创 2023-05-01 23:02:41 · 283 阅读 · 0 评论 -
【第十一届蓝桥杯省赛C/C++研究生组】寻找2020
思路如下:代码如下:#include<bits/stdc++.h>using namespace std;char a[400][400];void readtxt(){ int i=0; char hang[400]; FILE *f=fopen("find2020.txt","r"); while(fgets(hang,400,f)){ strcpy(a[i++],hang); } fclose(f);}int main(){ readtxt();原创 2022-01-18 15:10:40 · 751 阅读 · 2 评论 -
【第十一届蓝桥杯省赛C/C++研究生组】约数个数
思路如下:【蓝桥杯】约数个数_哔哩哔哩_bilibili天津科技大学Matrix工作室成员录制https://www.bilibili.com/video/BV1vb4y1H79X?spm_id_from=333.999.0.0代码如下:#include<bits/stdc++.h>using namespace std;int a[100];const int N=78120;//1.暴力解法 void fun1(int n){ int sum=0; for(int原创 2022-01-18 12:41:27 · 508 阅读 · 0 评论 -
【思特奇杯·云上蓝桥-算法集训营】第1周
蓝桥杯训练专用易错点如果把 跑一次且休息一次 作为一个周期去算,到最后几轮可能会出现 跑了超过10000体力,休息一下又小于10000体力 的情况,这显然不应该出现 ,按此错误思路算得答案 3970思路: 1.先考虑最后一次跑步的情况,由于只有跑步,只需更新累计秒数,跑够10000体力直接break 2.如果不是情况1,说明是情况2,那每次跑步必定跑满一分钟,无脑更新 累计体力和累计秒数 即可 ,答案:3880#include<bits/stdc++.h>us...原创 2022-01-08 13:51:12 · 506 阅读 · 0 评论 -
poj2407 Relatives---欧拉函数(求与n互质的数的个数)
Given n, a positive integer, how many positive integers less than n are relatively prime to n? Two integers a and b are relatively prime if there are no integers x > 1, y > 0, z > 0 such that...原创 2018-07-25 16:44:48 · 792 阅读 · 0 评论 -
素数打表(欧拉筛法)
#include<stdio.h>#include<iostream>#define MAXN 100000using namespace std;int prime[MAXN],vis[MAXN];int getprime(int n){ int i,j; int k=0; for(i=2;i<=n;i++) { ...原创 2018-07-25 18:02:49 · 1075 阅读 · 0 评论 -
HDU1078-FatMouse and Cheese(记忆化搜索)
FatMouse has stored some cheese in a city. The city can be considered as a square grid of dimension n: each grid location is labelled (p,q) where 0 <= p < n and 0 <= q < n. At each grid lo...原创 2018-08-10 20:37:48 · 249 阅读 · 0 评论 -
hdu2063-匈牙利算法
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27740 Accepted Submission(s): 11982 Problem DescriptionRPG girls今天和大家一起去...原创 2018-05-22 16:52:13 · 394 阅读 · 0 评论 -
hdu2035人见人爱a^b(快速幂)
想弄明白快速幂的原理,这里有一篇不错的博客点击打开链接 人见人爱A^B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 51642 Accepted Submission(s): 34436 Probl...原创 2018-06-07 09:39:36 · 282 阅读 · 0 评论 -
hdu2036多边形面积
“ 改革春风吹满地,不会AC没关系;实在不行回老家,还有一亩三分地。谢谢!(乐队奏乐)”话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。这块田位于浙江省温州市苍南县灵溪镇林家铺子村,多边形形状的一块地,原本是linle 的,现在就准备送给你了。不过,任何事情都没有那么...原创 2018-06-07 15:12:04 · 222 阅读 · 0 评论 -
POJ2318-TOYS(判断点与线的位置关系)
Calculate the number of toys that land in each bin of a partitioned toy box. Mom and dad have a problem - their child John never puts his toys away when he is finished playing with them. They gave Jo...原创 2018-07-26 20:16:34 · 488 阅读 · 0 评论 -
KMP算法
关于c语言版数据结构书上的代码,我整理了一下,具体思路和书上拟合。注意我这里存字符的时候从1开始存的,省的考虑位置问题。1.首先得到模式串 t 的next值。当模式串与主串失配时,我们不再回溯主串指针i,而让模式串向右划,那么滑到哪个位置呢?我们假设他划到k位置,即此时主串指针 i 应与模式串的第k个字符继续比较(k<j)。根据这点,我们给出next数组的定义。(关于匹配原理这里...原创 2018-11-20 18:26:36 · 241 阅读 · 0 评论 -
KMP ~~从入门到理解到彻底理解
作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。后收录于新书《编程之法:面试和算法心得》第4.4节中。原文:https://blog.youkuaiyun.com/v_july_v/article/details/70418271. 引言本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱...转载 2019-05-12 21:03:17 · 324 阅读 · 0 评论 -
HDU-1285- 确定比赛名次 (拓扑排序的经典应用)
有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 Input输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表...原创 2018-08-08 17:14:28 · 317 阅读 · 0 评论 -
UVA-10305-Ordering Tasks
这道题没有什么技术含量,一个拓扑排序就行了,这里我写这道题的目的是要让我们注意到他排序之后有很多种情况,如果题目没有要求(通常都有规定的顺序),那么只要是拓扑排序过的任意一种序列都是对的(即使你的程序跑出来的结果和样例不一样也是对的)。AC代码如下:#include<cstdio>#include<cstring>#include<string>...原创 2018-08-08 17:27:01 · 201 阅读 · 0 评论 -
最长公共子序列问题
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为: abcicbaabdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。输入 第1行:字符串A第2行:字符串B(A,B的长度 <= 1000) 输出 输出最长的子序列,如果有多个,随意输出1个。...原创 2018-08-12 10:00:31 · 849 阅读 · 0 评论 -
归并排序(分治法)
借鉴---白话经典算法系列之五 归并排序的实现和这篇博客https://www.cnblogs.com/chengxiao/p/6194356.html这里我们分两块来看,先看第一块。1. 这篇博客的图很好,有助于理解。图解排序算法(四)之归并排序基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-con...原创 2018-08-03 17:01:30 · 50657 阅读 · 22 评论 -
逆序数(分治与归并)
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。给出一个整数序列,求该序列的逆序数。Input第1行:N,N为序列的长度(n <= 50000) 第2 - N + 1行:序列中的元素(0 <= Aii <...原创 2018-08-03 15:58:32 · 1267 阅读 · 0 评论 -
POJ-3278-Catch That Cow
农夫知道一头牛的位置,想要抓住它。农夫和牛都于数轴上 ,农夫起始位于点 N(0<=N<=100000) ,牛位于点 K(0<=K<=100000) 。农夫有两种移动方式: 1、从 X移动到 X-1或X+1 ,每次移动花费一分钟 2、从 X移动到 2*X ,每次移动花费一分钟 假设牛没有意识到农夫的行动,站在原地不。最少要花多少时间才能抓住牛?Input一行: 以空格...原创 2018-08-25 12:23:55 · 150 阅读 · 0 评论 -
POJ1573-Robot Motion
Robot Motion A robot has been programmed to follow the instructions in its path. Instructions for the next direction the robot is to move are laid down in a grid. The possible instructions a...原创 2018-08-25 16:47:23 · 234 阅读 · 0 评论 -
HDU1242- Rescue (广度优先搜索的经典模板)
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to...原创 2018-07-31 20:54:11 · 348 阅读 · 0 评论 -
POJ2251--Dungeon Master(BFS板子题)
Description - 题目描述[NWUACM] 你被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成你每次向上下前后左右移动一个单位需要一分钟你不能对角线移动并且四周封闭是否存在逃出生天的可能性?如果存在,则需要多少时间?Input - 输入 输入第一行是一个数表示空间的数量。 每个空间的描述的第一行为L,R和C(皆不超过30)。 L表示空间...原创 2018-07-31 20:46:46 · 493 阅读 · 0 评论 -
CodeForces - 510B Fox And Two Dots
Fox Ciel is playing a mobile puzzle game called "Two Dots". The basic levels are played on a board of size n × m cells, like this:Each cell contains a dot that has some color. We will use differen...原创 2018-09-03 13:15:09 · 285 阅读 · 0 评论 -
一道题弄懂递归、深度优先搜索、记忆化搜索、DP动态规划
参考博客https://blog.youkuaiyun.com/weixin_38391092/article/details/79590710有一个层数为n(n<=1000)的数字三角形。现有一只蚂蚁从顶层开始向下走,每走下一级,可向左下方向或右下方向走。求走到底层后它所经过数字的总和的最大值。【输入格式】第一个整数为n,一下n行为各层的数字。【输出格式】一个整数,即最大值。【输入样例 ...原创 2018-08-10 20:05:09 · 2288 阅读 · 0 评论 -
HDU - 1242 Rescue (dfs基础题)
Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to...原创 2018-09-03 21:30:11 · 422 阅读 · 0 评论 -
codeforces /701C---They Are Everywhere(经典尺取法应用)
Sergei B., the young coach of Pokemons, has found the big house which consists of nflats ordered in a row from left to right. It is possible to enter each flat from the street. It is possible to go ou...原创 2018-07-28 21:51:59 · 340 阅读 · 0 评论 -
经典尺取(板子及原理)
板子如下:#include<cstdio>#include<algorithm>#include<string>#include<cstring>#include<cmath>#include<iostream>#include<vector>#include<set&a原创 2018-07-28 21:01:23 · 5602 阅读 · 0 评论 -
light oj 1078 - Integer Divisibility(大数取模)
If an integer is not divisible by 2 or 5, some multiple of that number in decimal notation is a sequence of only a digit. Now you are given the number and the only allowable digit, you should report t...原创 2018-07-24 21:32:34 · 217 阅读 · 0 评论 -
F - Large Division(大数取模模板)
Given two integers, a and b, you should check whether a is divisible by b or not. We know that an integer a is divisible by an integer b if and only if there exists an integer c such that a = b * c....原创 2018-07-24 21:34:18 · 252 阅读 · 0 评论 -
hdu1576 A/B(欧几里德扩展和逆元)
要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。Input数据的第一行是一个T,表示有T组数据。 每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。Output对应每组数据输出(A/B)%9973。Sample Input2...原创 2018-07-24 21:22:51 · 337 阅读 · 0 评论 -
3的幂的和 (快速幂+逆元+同余定理)
求:3^0 + 3^1 +...+ 3^(N) mod 1000000007Input输入一个数N(0 <= N <= 10^9)Output输出:计算结果Sample Input3Sample Output40先分析一下复杂度,光是跑完a就要1e+9,而计算机1s大概pao1e+8那个数量级,显然不能直接用for暴力。考虑到她是等比数列,我们可...原创 2018-07-24 21:28:39 · 607 阅读 · 0 评论 -
hdu1222:gcd的应用
G - Wolf and RabbitThere is a hill with n holes around. The holes are signed from 0 to n-1. A rabbit must hide in o...原创 2018-07-19 14:32:41 · 289 阅读 · 0 评论 -
hdu2504-又见GCD
E - 又见GCD有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。 Input第一行输入一个n,表示有n组测试数据,接下来的n行,每行输...原创 2018-07-19 14:46:52 · 851 阅读 · 0 评论 -
最大公因(约)数和最小公倍数
这个东西总是看了就会,回头就忘,有次学到一种好记的方法。下面我分享一下常规算法和高大上算法。这里我不写主函数了,直接在主函数里调用这个函数就行了。ps:(a和b的最小公倍数)*(a和b的最大公因数)=a*b;先求出最大公约数(最大公因数),然后可以求最小公倍数。第一种方法 常规算法int gcd(int a,int b){ int t=a%b; while(t)...原创 2018-05-21 21:41:45 · 630 阅读 · 0 评论 -
hdu1234 - 开门人和关门人(sort排序+结构体)
每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签 到、签离记录,请根据记录找出当天开门和关门的人。 Input测试输入的第一行给出记录的总天数N ( > 0 )。下面列出了N天的记录。 每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为 证件号码 签到时间 签离时间 其中时间按“小时:分钟:秒钟”(各占2位)给...原创 2018-07-22 09:34:39 · 322 阅读 · 0 评论 -
hdu1872(sort+结构体)
大家都知道,快速排序是不稳定的排序方法。 如果对于数组中出现的任意a[i],a[j](i<j),其中a[i]==a[j],在进行排序以后a[i]一定出现在a[j]之前,则认为该排序是稳定的。 某高校招生办得到一份成绩列表,上面记录了考生名字和考生成绩。并且对其使用了某排序算法按成绩进行递减排序。现在请你判断一下该排序算法是否正确,如果正确的话,则判断该排序算法是否为稳定的。 Inpu...原创 2018-07-22 09:41:44 · 294 阅读 · 0 评论 -
快速排序
快速排序啊哈c语言上讲的不错,过程是这样的:假设我们现在对“612 79345 108”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。...原创 2019-01-04 13:30:24 · 1088 阅读 · 0 评论 -
HDU2084-数塔 (简单dp入门)
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数...原创 2018-08-08 17:46:28 · 208 阅读 · 0 评论 -
51nod1078-矩阵取数问题 V2
一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上。第1遍时只能向下和向右走,第2遍时只能向上和向左走。两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值。 例如:3 * 3的方格。 1 3 32 1 32 2 1 能够获得的最大价值为:17。1 -> 3 -> 3 -> 3...原创 2018-08-11 21:08:01 · 291 阅读 · 0 评论 -
最大子序列和(动态规划)
最近温习和提升一下算法,发现了一个很经典的问题 - 最大子序列和,看到这篇博客,发现讲的很容易理解,给大家分享一下。转自:https://blog.youkuaiyun.com/memory_cood/article/details/88414601给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2...转载 2019-09-18 22:56:01 · 1451 阅读 · 1 评论