随笔分类 - ACM
摘要:题目大意: 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突。 分析: 首先我们假设所有节点均在不同行的0位置,即rank[]初始化需为零,同时p[]需要初始化为-1,表示各个节点之间不存在联系,相互独立; 接下来,我们获取信息:A B X;那么我们需要检查 : 1....
阅读全文
摘要:题意:求解01背包价值的第K优解。 分析: 基本思想是将每个状态都表示成有序队列,将状态转移方程中的max/min转化成有序队列的合并。 首先看01背包求最优解的状态转移方程:\[dp\left[ j \right] = \max \left\{ {dp\left[ j \right],dp\left[ {j - a\left[ i \right].w} \right] + a\left[ i ...
阅读全文
摘要:以下内容均节选自《算法导论》第31章最大公约数定义:若:\[\begin{array}{l}a = p_1^{e_1}p_2^{e_2} \ldots p_r^{e_r}\\b = p_1^{f_1}p_2^{f_1} \ldots p_r^{f_r}\end{array}\]则:\[\gcd( a...
阅读全文
摘要:题意: 题目撰写者的英语真是艰难晦涩,看了别人题解,才知道这题题意。 两个forger 一个froger 要蹦到另外一个froger处,他们的最短距离是这样定义的 : The frog distance (humans also call it minimax distance) between two stones therefore is defined ...
阅读全文
摘要:题意:给定一个有向图,求从源点到其他各点的往返最短路径和。且这个图有一个性质:任何一个环都会经过源点。图中的节点个数范围:0~100w;分析: 我们先可以利用Dijkstra算法求解从源点到其余各点的最短距离,这样工作就完成了一半了。那么如何求解从各点到源点的最短路呢? 1. 我们可以循环n-1次,...
阅读全文
摘要:题意:集合A,B,计算集合差A-B(求只在集合A内的数) 解法: 选用STL内的集合set 1.建立set 1: #include 2: 3: set se;2.关于集合的遍历,固定的格式:用容器的iterator访问所有数据。 1: for(set::iterator it=a.begin();it!=a.end();it++){ 2: //TO DO ...
阅读全文
摘要:题意:(略)太长了 解法:找规律,发现A[i]=A[i-1]*2-2; 1: #include 2: #include 3: #include 4: #include 5: #define N 31 6: int a[N]={3}; 7: void init(){ 8: int i; 9: for(i=1;i<N;i++){ ...
阅读全文
摘要:题意:求解多边形面积 解法: 先了解数学上“叉积”的含义与性质: 三角形ΔABC的面积为: 我们可以依次计算每个三角形的面积,ΔABC,ΔACE,ΔEF … … 所有三角形的面积之和为整个多边形的面积. 每次计算由A0,Ai,Ai+1组成的三角形 代码: 1: #include 2: #include 3: #include 4: #include 5...
阅读全文
摘要:题意:区间调度问题 解法:应用贪心算法,贪心的规则: 在可选的节目中,选取结束时间早的节目。 1: #include 2: #include 3: #include 4: #define N 101 5: struct time{ 6: int s,t; 7: }timer[N]; 8: int comp(const void *p,con...
阅读全文
摘要:题意:判断是否为闰年解法:这题需要注意一下用scanf能直接读入year,month,day附上代码: 1: #include 2: #include 3: #include 4: #define N 13 5: int month[N]={0,31,28,31,30,31,30,31,31,30,...
阅读全文
摘要:题意:显示杨辉三角形。 解法: 组合数学公式:combi(n,m)=combi(n-1,m-1)+combi(n-1,m); 至于为什么有这个公式呢?那就是高中数学的内容啦 1: #include 2: #include 3: #include 4: #define N 31 5: int map[N][N]; 6: void init(){ 7: ...
阅读全文
摘要:先附上Djikstra的代码:普通版const int maxn=101;const int INF=0x3f3f3f3f;int edges[maxn][maxn];int dist[maxn];void dijkstra(int s,int n){ bool done[maxn]; memset...
阅读全文
摘要:描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传...
阅读全文
摘要:题意: 输入N个数,去掉最大和最小的数,求剩余的数的平均数。 解法: 找到分别最大和最小的数,然后从总和中减去他们,再求平均数(不要排序); 1: #include 2: #include 3: #include 4: #include 5: #define INF 0x3f3f3f3f 6: int main(){ 7: int n,i; ...
阅读全文
摘要:题意: 数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。 解答: 哈哈,先遍历100~999所有数,检查是否满足水仙花数的条件,然后就可以直接用啦,只有四个数153,370,371,407 然后注意输出格式,第一次不小心Presentation error. ...
阅读全文
摘要:题目大意: 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。 解答: 坑你没商量!要考虑输入数a,b的大小。如果a>b,需要交换a,b的值。 1: #include 2: #include 3: int main(){ 4: int a,b,i; 5: while(scanf("%d %d",&a,&b)!=EOF){ 6:...
阅读全文
摘要:还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22297 Accepted Submission(s): 9961 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。...
阅读全文
摘要:畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14103 Accepted Submission(s): 5824 Problem Description 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(...
阅读全文
摘要:给定一个无向图,如果他的某个子图中,任意两个顶点都能互相连通并且是一棵树,那么这棵树就叫做生成树(spanning tree).如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST,Minimum Spanning Tree)。1.prim版本的算法 1: #include 2: #define INF 10000001 3: #define N 10001 4...
阅读全文
摘要:More is better Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 327680/102400 K (Java/Others)Total Submission(s): 11872 Accepted Submission(s): 4398 Problem Description Mr Wang wants some boys to...
阅读全文