为你推荐

Light Oj

题目传送门:BeEfficient 题意:输入n和m,然后输入有n个元素的一个序列,问有多少个子序列元素的和能整除m。思路:求前缀和,利用一个前缀的一个定理求解。前缀和的一个定理是:每次求的前缀和对m取余,两个相等的结果之间的序列的和就是m的倍数。如上序号1、4的结果相同,则序号2、3、4的和是4的倍数,序号...
代码星球·2020-07-18

Aizu1378 Secret of Chocolate Poles (dp)

SelectOfChocolatePoles 题意:有一个竖直放置的高度为lcm的盒子,现在有三种方块分别为1cm的白块,1cm的黑块,kcm的黑块,要求第一块放进去的必须是黑色的,盒子最上边的必须也是黑色的,盒子不必放满,问一共有多少种放法。思路:知道要用DP确实死活推不出状态转移公式来,这就很窒息了。到网...

Aizu

平行直线题意:给出一些点,这些点两两相连成一条直线,问最多能连成多少条直线。思路:暴力出奇迹!!记得当时比赛做这道题的时候一直依赖于板子,结果却限制了自己的思路,这得改。dfs直接暴力,但是需要将已经走过的点标记一下,用一个循环跳过已经标记的点减少dfs次数,不然得不出正确的结果,因为会出现如下的连线结果(左图),而正...
代码星球·2020-07-18

Gym

DecodingofVarints ​题意&思路: 首先根据红色边框部分的公式算出x,再有绿色部分得知,如果x是偶数则直接除以2,x是奇数则(x+1)/-2。PS:这题有数据会爆掉unsignedlonglong,就是在最后奇数转换的时候。所以转换的时候可以变公式为-((x-1)/2+1)。...
代码星球·2020-07-18

7-14 字符串关键字的散列映射 (25 分)

除留余数法设计哈希表 :由该式子得到value在哈希表中的存储位置:index=value%p;这里为了尽量的减少冲突,而且让value在哈希表中尽可能的均匀分布,p的选择就至关重要了。而合理选择p的经验是:若散列表表长为m,通常p为小于或等于表长(最好接近m)的最小质数或不包含小于20质因子的合数。平方探测...

7-9 旅游规划 (25 分)(Dijkstra算法)

题意: ​ 思路:单源最短路问题,Dijkstra算法搞定就可以了,因为要找出最便宜的最短路,所以需要在更新最短距离的时候加一个条件(即当最短距离相等的时候,如果该路径的花费更小,就更新最小花费)就可以了。之前自己学的最短路的水平也就仅限于模板题的水平,现在可以在条件上稍微加一些变化,做了数据结构的...
代码星球·2020-07-18

7-20 Windows消息队列 (25 分)(模拟水题)

题意: 思路: 用优先队列直接模拟就OK了,另外优先队列存pair的时候比较的是first的值,实测!!上代码:1#include<iostream>2#include<queue>3#include<cstdio>4#include<algorithm&g...

7-11 社交网络图中结点的“重要性”计算 (30 分)(Dijkstra算法)

题意: 思路:对每个输入的点跑一遍dijkstra算法,然后对这个点到所有点的距离求和按公式输出就可以了。(这次尝试了用数组模拟链表来做最短路问题,刷新了自己对最短路的理解)这里构造链表的过程我的理解一直有误差,第一行的式子中参与代码构建的是Next[cnt]=head[y];head[y]=cnt++;这两...

7-13 航空公司VIP客户查询 (25 分)

题意:  思路:读完题目之后的第一思路就是用map将客户的id(string类型)与里程road(int类型)形成映射,然后直接用id查找添加里程或输出里程。但是400ms的限制妥妥的超时了。然后意识到要用哈希做,但是用哈希就有一点不好解决,每个客户的里程怎么保存,考虑了很长时间无果,搜了一下博客,...

水图(牛客练习赛(DFS搜索))

题意:小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发经过每个点至少一次,最少需要走多少路思路:从当前位置开始dfs深搜,注意已经搜过的上一个点就不要搜了不然就成死循环了。确实是个水题,但因为图论搜索这方面练...

Robberies (01背包dp变形)

题意:一个强盗要抢劫银行又不想被抓到,所以要进行概率分析求他在不被抓的情况下能抢最多的钱。他给定T(样例个数),N(要抢的银行的个数),P(被抓的概率要小于P)Mj(强盗能抢第j个银行Mj元钱),Pj(强盗抢第j个银行被抓的概率为Pj)。思路:被抓的概率不好直接求出来,但可以直接求出不被抓的概率,则有状态转移方程dp[...
代码星球·2020-07-18

LIS(两种方法求最长上升子序列)

首先得明白一个概念:子序列不一定是连续的,可以是断开的。有两种写法:一、动态规划写法复杂度:O(n^2)代码:1#include<iostream>2#include<queue>3#include<cstdio>4#include<algorithm>5#include...

7-17 奥运排行榜 (25 分)

题目:思路:针对四种排序方法构建四个结构体,按四种排序排完之后,把结果汇总到代表国家的一个结构体中。然后就是查询就是了。排序规则可通过下面的例子了解一下:序列:g[0]=1,g[1]=2,g[2]=2,g[3]=3;排名:1     ,2  &nbs...
代码星球·2020-07-18

区间DP

一场比赛让自己看到了学了这么长时间,竟然还有这么多落下的东西。区间DP,通过先求小区间的最优解,然后通过小区间的最优解来得到大区间的最优解。区间DP板子1for(intlen=2;len<=N;len++)//枚举区间的长度,长度是从2开始的,从一开始是貌似没什么意思2for(intst=0;st<N;st...
代码星球·2020-07-18

HDU-1864&&HDU-2602(01背包问题)

DP-01背包问题例题输入处理有点恶心人,不过处理完后就是简单的DP了从头开始dp[i]表示从0开始到i的最优结果,最后从都边里dp数组,求得最大的报销额。对于每个i都要从头维护最优结果。(二刷感觉仍不得dp精髓,,,,)HDU-1864最大报销额1#include<iostream>2#include&l...