ACM
文章平均质量分 86
柠檬ya
不要慌,不要慌,太阳下了有月光
展开
-
最小生成树(Prim算法+Kruskal算法)
概述:一个有N个点的图,边一定是大于等于N-1条的。图的最小生成树,就是在这些边中选择N-1条出来,连接所有的N个点。这N-1条边的边权之和是所有方案中最小的。Prim算法介绍:Prim算法采用与Dijkstra、Bellman-Ford算法一样的“蓝白点”思想:白点代表已经进入最小生成树的点,蓝点代表未进入最小生成树的点。由于图中各点都是连通的,要想一条路上的总权值最小,那么最好......原创 2019-10-24 19:51:21 · 1438 阅读 · 1 评论 -
I - Arbitrage
I - ArbitrageArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar b...原创 2019-10-24 19:03:26 · 823 阅读 · 0 评论 -
H - Cow Contest
H - Cow ContestN (1 ≤ N ≤ 100) cows, conveniently numbered 1…N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill ra...原创 2019-10-24 18:13:12 · 855 阅读 · 0 评论 -
D - Silver Cow Party(双向最短路)
D - Silver Cow PartyOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1…N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidir...原创 2019-10-23 19:39:57 · 988 阅读 · 0 评论 -
F - Wormholes(Spfa判断负环)
F - WormholesWhile exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at...原创 2019-10-23 19:31:25 · 261 阅读 · 0 评论 -
A - Til the Cows Come Home
A - Til the Cows Come HomeBessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty s...原创 2019-10-13 16:01:33 · 835 阅读 · 0 评论 -
B - Frogger
B - FroggerFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of t...原创 2019-10-13 15:56:37 · 212 阅读 · 0 评论 -
团伙(group)
团伙(group)Description在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友, 或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?Input第1行为n和m,1<n<1000,1<=m&...原创 2019-09-22 18:58:28 · 1797 阅读 · 0 评论 -
搭配购买(buy)
搭配购买(buy)DescriptionJoe 觉得云朵很美,决定去山上的商店买一些云朵。商店里有n 朵云,云朵被编号为1, 2,……,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好, 所以买一朵云则与这朵云有搭配的云都要买。但是Joe 的钱有限,所以他希望买的价值越多越好。Input第1 行n,m,w,表示n 朵云,m 个搭配,Joe 有w 的钱。第2~n+1...原创 2019-09-23 21:44:13 · 876 阅读 · 0 评论 -
珍珠(bead)
珍珠(bead)Description有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位。下面给出将一对珍珠进行比较的办法:给你一架天平用来比较珍珠的重量,我们可以比出两个珍珠哪个更重一些,在作出一系列的比较后,我们可以将某些肯定不具备中间重量的珍珠拿走。例如,下...原创 2019-09-24 19:20:53 · 1712 阅读 · 0 评论 -
刻录光盘(cdrom)
刻录光盘(cdrom)Description在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,怎么办呢?!DYJ分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人...原创 2019-09-24 19:29:02 · 988 阅读 · 0 评论 -
并查集(偏移量+路径压缩)
并查集的概念:并查集是由一个数组、两个函数(查找一个数的根、合并路线)组成,常用来解决一些不相交集合的合并与查找问题。并查集中有2个重要的函数:一个用来寻找祖先,一个用来合并祖先:节点指向自身int find(int x) //寻找x的祖先,这里为了节约时间使用了路径压缩{ return x == p[x] ? x : p[x] = find(p[x]);}路径压缩:下图r...原创 2019-09-25 17:17:36 · 1124 阅读 · 0 评论 -
欧拉路和欧拉回路
欧拉路径的定义:如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit)。具有欧拉回路的图称为欧拉图(简称E图)。具有欧拉路径但不具有欧拉回路的图称为半欧拉图。欧拉路径以及欧拉回路的判断:奇点的定义:指跟这个点相连的边数目有奇数个的点。定理1:存在欧拉路的条件:图是连通的,有且只有2个奇点...原创 2019-09-26 10:02:50 · 694 阅读 · 0 评论 -
奖金
奖金(reward)Description由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,YaliCompany总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数...原创 2019-10-09 19:15:39 · 190 阅读 · 0 评论 -
链式前向星存图模板
链式前向星存图模板#include <bits/stdc++.h>using namespace std;const int maxn = 1e4+5;int head[maxn];int n,m;int cnt;struct EDGE{ int to,next,w; //to为终点,next指向下一条边,w为边权}edge[maxn];void ini...原创 2019-10-10 11:37:32 · 163 阅读 · 0 评论 -
最优乘车(bus)
最优乘车(bus)DescriptionH城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆、饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘...原创 2019-09-22 13:42:36 · 1384 阅读 · 0 评论 -
P1144 最短路计数
P1144 最短路计数题目描述给出一个N个顶点M条边的无向无权图,顶点编号为1−N。问从顶点1开始,到其他每个点的最短路有几条。输入格式第一行包含222个正整数N,M,为图的顶点数与边数。接下来M行,每行2个正整数x,y,表示有一条顶点x连向顶点y的边,请注意可能有自环与重边。输出格式共N行,每行一个非负整数,第iii行输出从顶点111到顶点iii有多少条不同的最短路,由于答案有可能...原创 2019-09-16 11:44:48 · 359 阅读 · 0 评论 -
P1119 灾后重建
P1119 灾后重建题目背景B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响。但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车。换句话说,只有连接着两个重建完成的村庄的公路才能通车,只能到达重建完成的村庄。题目描述给出B地区的村庄数N,村庄编号从000到N−1,和所有MMM条公路的长度,公路是双向的。并给出第i个村庄重建完成的时间ti,你可以认为是...原创 2019-09-16 10:33:03 · 284 阅读 · 0 评论 -
快速幂算法
快速幂算法快速幂算法用于快速求出a的b次方的值,为了防止程序溢出,通常会在运算过程中对每次的运算结果取模快速幂算法模板:#include <bits/stdc++.h>using namespace std;typedef long long LL;LL mod = 1e7+7; //数字较大时为了防止溢出,通常要进行取模运算LL qmod(LL p , LL...原创 2019-08-07 15:31:42 · 491 阅读 · 0 评论 -
最长公共子序列(LCS)
最长公共子序列(LCS)LCS是Longest Common Subsequence的缩写,即最长公共子序列。一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。比如,对于char x[]=“aabcd”;有顺序且相互相邻的aabc是其子序列,有顺序但是不相邻的abc也是其公共子序列。即,只要得出序列中各个元素属于所给出的数列,就是子序列。再加上char y[...原创 2019-08-07 15:42:42 · 635 阅读 · 0 评论 -
素数表----埃式筛法
埃式筛法计算整数区间[2,n]中的所有素数的最为简便的筛法——埃拉托斯特尼筛法(The Sieve of Eratosthenes):设u[]为筛子,初始时区间中的所有数在筛子u[]中。按递增顺序搜索u[]中的最小数,将其倍数从u[]中筛去,最终筛中留下的数即为素数。时间复杂度:O(n * log log n)代码:#include <iostream> //埃式筛法#i...原创 2019-08-05 09:58:22 · 601 阅读 · 0 评论 -
素数表----欧拉筛法
欧拉筛法欧拉筛法的数学原理:欧拉函数:在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。欧拉筛法可以用于对给定区间内的所有素数进行打表,欧拉筛法大幅度提...原创 2019-08-05 09:41:19 · 2068 阅读 · 0 评论 -
伪素数判断----Pseudoprime numbers
伪素数定义:伪素数,又叫做伪质数:它满足费马小定理,但其本身却不是素数。最小的伪素数是341。有人已经证明了伪素数的个数是无穷的。事实上,费马小定理给出的是关于素数判定的必要非充分条件。若n能整除2^(n-1)-1,并n是非偶数的合数,那么n就是伪素数。第一个伪素数341 是萨鲁(Sarrus)在1819年发现的。简单解释一下伪素数:一个数字p本身不是素数但满足费马小定理,即a的p次方模p与a模...原创 2019-08-04 23:18:03 · 6790 阅读 · 0 评论 -
digits 2
digits 2题目描述You are given a positive integer n which is at most 100.Please find a positive integer satisfying the following conditions:The sum of all digits of this number is dividable by n.This...原创 2019-08-01 20:24:16 · 979 阅读 · 0 评论 -
ACM/ICPC----动态规划
Day2动态规划动态规划方法的编程实验在现实中有一类活动,其过程可以分成若干个互相联系的阶段,在它的每一个阶段都需要作出决策,从而使整个过程达到最好的活动效果。在各个阶段决策依赖于当前状态,也引起状态的转移,而一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义。我们称这种解决多阶段决策问题的方法为动态规划(Dynamic Programming,DP)方法,简称为DP方法。以上是吴...原创 2019-08-02 23:13:19 · 745 阅读 · 0 评论 -
图论----最短路径(Dijkstra算法 + 堆优化)
【概述】Dijkstra算法用于解决单源最短路径问题,也就是从某一点c1到终点c2的最短路径,但无法处理负边权情况。未使用优先队列(堆优化)的算法复杂度为O(N2),使用优先队列优化后的算法复杂度大概为O(NlogN),下面会一一进行介绍。【算法描述】Dijkstra算法可以简单的理解为广度优先搜索(BFS)加上贪心算法,因为他是从源点开始像四周搜寻路径最短的点,再从相邻的最短的点继续向四...原创 2019-09-02 17:19:27 · 4077 阅读 · 7 评论 -
图论----最短路径(Floyd算法)
【概述】Floyed-Warshall算法用来解决全源最短路径问题,简单来说就是求出任意一点c1到任意一点c2的最短路径,算法复杂度O(n3)。【算法描述】Floyed-Warshall算法暴力求出全源最短路径,首先选出一个转折点k,然后遍历所有节点,以k为转折在去遍历所有节点,每次询问 e[i][j] > e[i][k] + e[k][j] ?(e[i][j]表示从i -> j...原创 2019-09-02 17:45:16 · 657 阅读 · 0 评论 -
结构体内嵌的operator排序
结构体内嵌比较函数:第一种情况简单的sort排序:struct node{ int a; int b; bool operator < (const node &t)const { return a > t.a; }};这里内嵌的比较函数是按照a的值递减,但如果需要优先队列,且需要递减排列,那就需要写成这样:...原创 2019-09-03 18:27:46 · 2478 阅读 · 0 评论 -
图论----最短路径(Spfa算法)
概述SPFA算法O(kE,k是常数,平均值为2,是Bellman-Ford算法的队列实现),Bellman-Ford算法主要是处理负权边问题,但无法处理负回路,只能判断是否为负环。算法描述dis数组用来存储从源点到各个点的路径长度,vis用来标记是否已经被走过,这里注意,每次取出队头元素,对所有点进行遍历时要对每个点进行标记,但处理完之后要把对头元素重新标记为true,这样才不会影响下面的计...原创 2019-09-06 20:47:21 · 258 阅读 · 0 评论 -
洛谷P1462 通往奥格瑞玛的道路
P1462 通往奥格瑞玛的道路题目背景在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量有一天他醒来后发现自己居然到了联盟的主城暴风城在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛题目描述在艾泽拉斯,有n个城市。编号为1,2,3,…,n。城市之间有m条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。每次经过一个城市,都会...原创 2019-09-11 11:38:40 · 250 阅读 · 0 评论 -
洛谷P1346 电车
P1346 电车题目描述在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。为了行驶向目标地点,电车司机不...原创 2019-09-11 18:18:25 · 178 阅读 · 0 评论 -
背包DP问题(01背包+完全背包+分组背包+多重背包+混合背包+二维费用的背包)
背包DP问题01背包问题一、01背包问题问题:有N件物品和一个容量为V的背包。第i件物品的费用(即体积,下同)是w[i],价值是c[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品(部分或全部)恰放入一个容量为v的背包...原创 2019-08-17 11:44:39 · 1357 阅读 · 0 评论