ACM2018 and 2019 Exercise
ACM训练心得体会及总结
成龙大侠
这个作者很懒,什么都没留下…
展开
-
HPU算法协会一二年级联合训练赛
题目主要选自Gym 100985A-Gym 100985M简直就是阅读理解专场。。。题意比题目还难。。。一共13道题,勉强做出来12道,题目不难,题意难。看来需要好好学学英语了。A题:题意介绍的很花哨,其实就是判断两个数的最大公因数是否为1。刚开没能清楚的理解题意,其中题目中有一句是因数尽可能的少Each of these ids were chos...原创 2019-08-09 16:52:08 · 209 阅读 · 0 评论 -
河南理工大学算法协会暑期集训积分赛(二) I. Same String(传递闭包)
题目链接:https://hpuoj.com/contest/23/problem/I/ I. Same String单点时限:2.0 sec内存限制:512 MB有两个只由小写字母组成的长度为n的字符串s1,s2和m组字母对应关系,每一组关系由两个字母c1和c2组成,代表c1可以直接变成...原创 2019-07-29 20:50:41 · 204 阅读 · 0 评论 -
河南理工大学算法协会暑期集训积分赛(二) E. Numbers of interval(二分,前缀和)
题目链接:https://hpuoj.com/contest/23/problem/E/题意:给出一个序列,问有多少个子序列的和大于等于k分析:这道题正确的解法是二分,不过暴力也能过。从第一个枚举,求出前缀和,然后一旦大于等于k那就当前位置及以后都是符合条件的。下一次从第二个数枚举即可。#include <bits/stdc++.h>using names...原创 2019-07-29 20:43:24 · 269 阅读 · 0 评论 -
河南理工大学算法协会暑期集训积分(二) D. Points in rectangle(数学,几何)
题目链接:https://hpuoj.com/contest/23/problem/D/题意:给出四个点组成的矩形,在给出很多点,问有多少个点在矩形内(边上也算)分析:这题,唉,一言难尽。首先看到题,然后看到了四个点 (0,a),(a,0),(n,n−a),(n−a,n),然后就随便在纸上画了一下,我以为是这样的?其实,它是这样的因为错误的想法,我先考虑斜率,有考虑...原创 2019-07-29 20:37:11 · 223 阅读 · 0 评论 -
河南理工大学算法协会暑期集训积分赛(二) B. 恐怖的怪物(BFS || DFS)
题目链接:https://hpuoj.com/contest/23/problem/B/B. 恐怖的怪物单点时限:5.0 sec内存限制:512 MB一天早上,Dicer一觉醒来,发现自己来到了MineCraft的世界里面,身为MineCraft游戏爱好者的他欣喜不已,于是他在地下挖了一片长方体的空间作为秘密基地,可是他发现光照亮度小于等于7时,会有恐怖的怪物出现,并且他通过查...原创 2019-07-29 21:05:25 · 198 阅读 · 0 评论 -
河南理工大学算法协会暑期集训积分赛(二) A. 再战斐波那契(任意两个斐波那契数的最大公约数,打表找规律)
题目链接:A. 再战斐波那契单点时限:1.0 sec内存限制:512 MB小z学会了斐波那契和gcd后,老师又给他出了个难题,求第N个和第M个斐波那契数的最大公约数,这可难倒了小z,不过在小z的再三请求下,老师又告诉他了个条件,gcd(N,M)∈[1,90]。可是,笨拙的小z还是不会,于是请求你帮他解答这个问题。输入格式输入包括T组,T∈[1,10]....原创 2019-07-29 20:55:29 · 200 阅读 · 0 评论 -
归并排序求逆序数
归并排序是一种稳定排序。想要知道什么是归并排序要先知道就要先了解分治与递归的思想。参考我的博客:click here !!!归并排序求逆序数的思想就是,利用递归不挺的将一列数分成两部分,然后cnt加上每一个被分开的部分中的逆序数,在不停的分治的时候也进行了排序。最后求出被分开的两部分中的总逆序数。例如 2 4 3 1 先分成 2 4 和 3 1然后2 4进一步分成 2 和 4,3 1...原创 2018-09-08 21:14:25 · 795 阅读 · 0 评论 -
并查集((还是)畅通工程 )(The Suspects )(Ubiquitous Religions )
题目训练网址: https://vjudge.net/contest/247051 并查集是一种树型的数据结构,用于处理一些不相交集合 (Disjoint Sets)的合并及查询问题。常常在使用中以森林来 表示。集就是让每个元素构成一个单元素的集合,也就是按 一定顺序将属于同一组的元素所在的集合合并。。 在一些有N个元素的集合应用问题中,我们通常是在开始...原创 2018-08-15 21:12:54 · 376 阅读 · 0 评论 -
DFS序详解
转自 :https://blog.csdn.net/qq_36368339/article/details/79236467树通常有多种类型,但其终归是非线性结构,操作起来有时总是那么费时。例如:POJ 3321给你一棵树,树上每个节点都有1个苹果,然后你对一个节点操作,如果有苹果就拿走,没苹果就放上,然后询问你以x为根的子树上共有多少个苹果。每次更新都要遍历一遍,查询也要...原创 2018-08-21 16:50:36 · 7577 阅读 · 1 评论 -
动态规划之背包问题(待完善)
题目训练(密码hpuacm):https://vjudge.net/contest/244922背包问题有 部分背包 01背包 完全背包 多重背包部分背包是一种可分割的背包,就是一个背包我们可以只取它的部分。那么给出一组物品的价值和重量,怎么选才能让背包装的价值最大呢?很简单,选性价比最高的,即优先选择的是单位重量价值(v[i] / w[i])最高的那个。01背包就很熟悉了,就是给出一...原创 2018-08-08 22:17:36 · 237 阅读 · 0 评论 -
线段树(插讲DFS序)
题目训练网址(密码hpuacm):https://vjudge.net/contest/248759关于线段树原理什么的参考我转发来的两篇文章递归版:https://blog.csdn.net/hpu2022/article/details/81946151非递归版:https://blog.csdn.net/hpu2022/article/details/81946200这里...原创 2018-08-21 20:13:19 · 382 阅读 · 0 评论 -
最小生成树与并查集(待补)
题目训练网址(密码hpuacm): https://cn.vjudge.net/contest/247189 //#include <bits/stdc++.h>#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;const int ...原创 2018-08-17 20:57:41 · 215 阅读 · 0 评论 -
线段树详解(非递归版)
接上篇:https://blog.csdn.net/hpu2022/article/details/81946151转自: https://blog.csdn.net/zearot/article/details/48299459 四:非递归原理非递归的思路很巧妙,思路以及部分代码实现 来自 清华大学 张昆玮 《统计的力量》 ,有兴趣可以去找来看。非递归的实现,代码简单(尤其...转载 2018-08-22 16:24:34 · 2798 阅读 · 0 评论 -
线段树详解(递归版)
转自: https://blog.csdn.net/zearot/article/details/48299459 线段树详解 By 岩之痕...转载 2018-08-22 16:16:56 · 1070 阅读 · 0 评论 -
KMP专题(Period)( Power Strings)(Oulipo)
题目训练网址(密码hpuacm) : https://vjudge.net/contest/248066Number Sequence//#include <bits/stdc++.h>#include <stdio.h>#include <string.h>using namespace std;const int MAXN = (int) ...原创 2018-08-18 20:27:24 · 646 阅读 · 0 评论 -
(Crazy Search)(Oulipo )hash哈希
题目训练网址(密码hpuacm): https://cn.vjudge.net/contest/247842 Crazy Search给定一个字符串,其中含有不同的字母数量为m,现在求这个字符串中有多少个长度为n且长的互不相同的字符子串 举个例子, n=3, m=4 ,字符串 "daababac". 长度为3的不同的...原创 2018-08-17 20:56:02 · 300 阅读 · 0 评论 -
最短路和差分约束(三种算法实现)( Til the Cows Come Home )
题目训练链接(密码hpuacm): https://vjudge.net/contest/246705我会分别用 迪杰斯特拉 优先队列和链式前向星优化过的迪杰斯特拉 SPFA算法 三种方法讲一下例题。此外上述三种算法是求单源最短路问题, 这里还会介绍一下多源最短路的算法 floyd算法。多源最短路可以求出任意两点间的最短距离。在存图方式中会用到邻接矩阵 链式前向星等存图方式,不知道...原创 2018-08-14 21:10:26 · 2496 阅读 · 0 评论 -
矩阵取数问题 (v2)(子串查询) (Polycarp and Div 3 )
题目训练网址(密码hpuacm) : https://vjudge.net/contest/245961#overview 矩阵取数问题 一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。例如:3 * 3的方格。...原创 2018-08-11 21:17:49 · 323 阅读 · 0 评论 -
记忆化搜索+树形DP初接触(滑雪)( Anniversary party)
题目训练网址(密码hpuacm): https://vjudge.net/contest/245538其实我之前的博文已经提到过一次记忆化搜索关于01背包的: 文章链接对于记忆化搜索其实很好理解。就是每次DFS得到的结果用一个用来记忆值的数组保存。直接来看一道题目更好理解。 滑雪Micha...原创 2018-08-10 21:26:02 · 276 阅读 · 0 评论 -
动态规划之钱币兑换问题
钱币兑换问题 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。Input每行只有一个正整数N,N小于32768。Output对应每个输入,输出兑换方法数。Sample Input293412553Sampl...原创 2018-08-07 23:02:55 · 9147 阅读 · 1 评论 -
最大子段和问题
最大子段和 N个整数组成的序列a11,a22,a33,…,ann, 求该序列如aii+ai+1i+1+…+ajj的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列...原创 2018-08-07 23:09:20 · 876 阅读 · 2 评论 -
动态规划入门(超详细整理)
题目链接(密码hpuacm):2018HPU暑期集训—动态规划入门看故事了解动态规划思想:click here!!!求解动态规划问题求到最后无非就三种方法,见我之前的博文用三中方法详细讲解了01背包问题。第一种递归搜索法:https://blog.csdn.net/hpu2022/article/details/80741681第二种递归搜索法+记忆:https://bl...原创 2018-08-07 21:03:29 · 16440 阅读 · 1 评论 -
分治与递归(待补)
题目训练网址(密码hpuacm):https://vjudge.net/contest/243680 先说一下归并排序求逆序数法什么事逆序数 戳这里C题模板(归并排序求逆序数)#include <bits/stdc++.h>using namespace std;typedef long long LL;vector<int> v;...原创 2018-08-05 09:37:44 · 389 阅读 · 0 评论 -
拓补排序+树的直径
训练题目网址(密码hpuacm2017): https://vjudge.net/contest/244053 记好下面的模板#include <bits/stdc++.h>using namespace std;const int MAXN = 1000+10;int ma[MAXN][MAXN];int vis[MAXN];int n, m;void...原创 2018-08-05 09:26:07 · 190 阅读 · 0 评论 -
递归+暴解+贪心
题目链接(密码hpuacm):https://vjudge.net/contest/243307八成都是水题。A题猴子吃桃太水。B题疯狂的母牛,分别用三个变量保存一年,二年和三年龄的牛。第四年时三年龄的牛就要生小牛了。 注意一点就是,第一年只有一头三年龄的母牛。C题 2的n-k次方D题 贪心,把线段按照起点的从小到大排序,起点一样按终点小的排在前面。然后循环一边,每次取相邻两个...原创 2018-08-03 11:31:05 · 332 阅读 · 0 评论 -
DFS精讲
题目训练(密码hpuacm):链接https://vjudge.net/contest/241948DFS(深度优先搜索)是搜索手段之一。它从某个状态开始,不停的转移状态,知道无法转移,然后回退到前一步状态,继续转移到其他状态,如此不断重复,直到找到最终的解。A题是标准的模板题,既可以用DFS写,也可以用上一篇博客讲的BFS写(链接戳此处)。下面给出两种写法#include <...原创 2018-08-02 09:05:32 · 378 阅读 · 0 评论 -
存图方法之链式前向星+BFS实例精讲
训练题目链接(密码hpuacm): https://vjudge.net/contest/242570存图方法有很多,最暴力的方法就是开一个二维数组int maze[1000][1000]; //最多能大概5000 5000int a, b, c; // 一条从a到b的权值为c的边while( cin >> a >> b >> c ){ ma...原创 2018-07-31 20:59:09 · 820 阅读 · 0 评论 -
二分+尺取总结及练习题讲解
题目链接(密码 hpuacm2018):https://vjudge.net/contest/241732#overview 二分参考之前的博客:https://blog.csdn.net/hpu2022/article/details/79845630尺取:理解了尺取后用题目来做练习,实际问题中尺取的条件多种多样,要多做练习多总结。训练题中的B题:#in...原创 2018-07-29 10:59:12 · 564 阅读 · 0 评论 -
栈、队列、优先队列和题目讲解
训练题目网址(密码hpuacm):https://cn.vjudge.net/contest/241502#overview 栈和队列的基础知识不再讲解,参考之前写的博客栈:https://blog.csdn.net/hpu2022/article/details/79845577队列:https://blog.csdn.net/hpu2022/article/details/79...原创 2018-07-27 23:48:23 · 620 阅读 · 0 评论 -
算术基本定理及应用串讲欧拉函数
题目训练(包含容斥定理)(密码hpuacm):https://vjudge.net/contest/240973#overview主要有以下内容:1. 质因子分解2. 质因子个数3. 求数N的所有因子之和 4. 算术基本定理角度看GCD和LCM代码实现:质因数分解,个数统计,求和#include <cstdio>#includ...原创 2018-07-25 16:24:16 · 540 阅读 · 0 评论 -
同余定理+逆元的理论及其应用
题目训练网址(密码hpuacm) https://vjudge.net/contest/240634#overview关于同余定理及其性质的介绍参考这篇博文 https://blog.csdn.net/codeharvest/article/details/70314593关于逆元以及求解逆元的扩展欧几里得算法的介绍参考这篇博文 https://blog.csdn.net/stray_l...原创 2018-07-24 20:54:01 · 612 阅读 · 1 评论 -
STL练习总结二
点击跳转到目标网址,密码HPUACM2018 F题有很较强的技巧性,将每一个单词拆分成所有可能的前缀,并且这些前缀每次出现其作为键对应的值就加一,当所有的单词都这样操作过后,map中就记录了所有可能的键对应的值。例如 banana会被拆分为 banan bana ban ba b.#include <bits/stdc++.h>using names...原创 2018-07-22 10:08:44 · 211 阅读 · 0 评论 -
STL练习总结
点击跳转到目标网址,密码HPUACM2018 C题就是两个集合相加,然后去除掉重复的元素。本题可以利用STL中的set来解决,将两个集合中的元素分别插入到set定义的新集合中,自动去重。程序结束时不要忘记清空,同时下面程序段里有一个最后一个数的末尾没有空格的技巧。for( int i=0; i<numa; i++ ) { scanf("%d", &nu...原创 2018-07-22 09:28:47 · 491 阅读 · 0 评论 -
sort排序+结构体总结
点击此处跳转到目标网址密码 hpuacmA题中 23:59:59 这样的时间输出可以当做字符串处理struct people{ char name[20]; char com[20]; char lea[20];};struct people peo[10000];bool cmp1( struct people p1, struct people p2 ){...原创 2018-07-20 22:36:18 · 2409 阅读 · 0 评论 -
快速幂 A的B次方mod上C
#include <stdio.h>typedef long long LL;LL pow_mod(LL a, LL n, LL MOD){ LL res = 1; while (n) { if(n&1) //当前n的二进制的最后一位为1,即此时的n为奇数 res = res * a % MOD; a = a * a % MOD; //相当于ba...原创 2018-07-19 15:46:15 · 1185 阅读 · 0 评论