原文链接:https://blog.csdn.net/a_madara/article/details/53526496 写在前面: 最近有小学弟问了,刚来的小学弟正在打基础的阶段 于是po出了老同学写的答案^^ 希望小学弟们能在c/c++的世界打出一片天地,算法的大门时刻为你们打开oooooo A Problem Descri
顺序表应用7:最大子段和之分治递归法 Time Limit: 10 ms Memory Limit: 400 KiB Submit Statistic Problem Description 给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定
不得不说我今天心情特别差劲。为啥呢? 同样的思想,用java和python写,母校OJ一直报TLE,我还以为是我算法有问题,研究了半天研究的我脖子疼,还浪费了很多时间。最后发现TMD同样的算法改成C++就能过。妈的我想骂人!!! 问题描述: 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类
/SDUT 2057 金牌 银牌 铜牌 记录这个题之前先发表一下感受,这个题的整体思路不难,但实现起来不是很容易,至少对我来说。 个人感觉,输出排名的函数有些困难,也没想到很好的方法,思路有些乱,也费了不少力气,但最后总算 提交成功了,特意记录一下。 做完这个题之后,我发现在链表中排序可以
最长公共子序列 该题解参考这位博主https://blog.csdn.net/weyuli/article/details/9309121,我写这篇随笔只是为了解释一下这位博主写的代码,因为代码的注释很少,若是有跟我一样的新人怕是要耗费很长时间去理解题意,借此机会说说我对这个题的思路,并解释该博主的部分代码 内容:
群的判定 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 设D为非负子数集,二元运算+为模M加法。现给定D和M,问代数系统V=< D, + >是否构成群,如果是,那么求给定元素的逆元。 Input 多组测试数据,对于每组测试数据,第一行三个数N(1 <= N <=
判断子群 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 给定一个有限群S,和他的一个子集S1,定义S上的二元运算*为模M加法运算,判断该子集是否为S的子群。(子群的定义:设H为群G的非空子集。如果H在G的运算下构成群,则称H为G的子群) Input
熟悉掌握动态规划类型的解法 动态规划的要点是需要找出 “状态转移方程” A——递归的函数 #include <stdio.h> #include <stdlib.h> int d[21][21][21]={0}; int f(int a,int b,int c) { if(a<=0||b<=0||c<=0) return 1; if(a>20||b>20||c>20)
Problem Description 棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过15的整数),同样马的位置
#include <stdio.h> #include <stdlib.h> struct BinTree//节点 { char ch; struct BinTree *left, *right; }; typedef struct BinTree *Node; //建立节点指针类型 char pre[150]; int i; Node Creat()//按照先序遍历创建 { Node T; if(pre[i] == ',
Problem Description 第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。 为了简化题目,这里