
ACM
ltx06
这个作者很懒,什么都没留下…
展开
-
什么是无后效性?
无后效性是一个问题可以用动态规划求解的标志之一,理解无后效性对求解动态规划类题目非常重要 某阶段的状态一旦确定,则此后过程的演变不再受此前各种状态及决策的影响百度百科是这样定义的,是不是很苦涩,难懂。并且网上对这个名词的解释大多都是理论性的,不好理解,今天我们通过一个例子来看看什么是无后效性 现在有一个四乘四的网格,左上角有一个棋子,棋子每次只能往下走或者往右走,现在要让棋子走到右...转载 2018-11-19 15:58:28 · 4216 阅读 · 0 评论 -
由n阶幻方问题引发的思考
转自于:http://blog.youkuaiyun.com/fengchaokobe/article/details/7437767转载 2014-04-17 23:01:00 · 1124 阅读 · 3 评论 -
HDU1001
http://acm.hdu.edu.cn/showproblem.php?pid=1001 题目看起来是挺简单的,第一反应就是用公式做,哪晓得用公式中间也要注意使用的方法。不能直接sum=(1+n)*n/2;因为题目只是说结果在32bit之内,但(1+n)*n很可能超出32bit,所以这样写放上去就是错的。这可能是和编译有关吧!决定今天晚上复习下编译原理这部分的内容。 还有一转载 2014-05-01 22:14:25 · 660 阅读 · 0 评论 -
竖式问题
from......http://zhan.renren.com/xiaoyantian?gid=3602888498024774969&checked=true题目:找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的转载 2014-02-16 21:00:46 · 779 阅读 · 1 评论 -
算法竞赛第二章练习
//排序fopen版#includeint main(){FILE *fin ,*fout;fin = fopen("permutation.in" , "rb");fout = fopen("permutation.out" , "wb");int a,b,c,d,e,f,g,h,i;for(a=1;a{for(b=1;b{for(c=1;c原创 2014-02-07 14:30:41 · 608 阅读 · 1 评论 -
代码编辑神器VIM(附我写acm程序时的配置)
转by http://blog.youkuaiyun.com/dinosoft/article/details/6330121目录(?)[-]个人认为最好的入门方法Vim进阶设置 配色快速从模板建立文件安装步骤配置脚本增加模板我写acm程序的配置附录 有些牛X的人性格会比较古怪,VIM就是这么一位特立独行,难以琢磨的怪客。但如果熟悉了,转载 2014-02-05 13:58:46 · 904 阅读 · 0 评论 -
C/C++输入/输出重定向
前言 在我学习C语言的初期,一直有个麻烦,因为打印的调试或者结果信息过多,一屏显示不下,所以很多时候我看不到前面打印出来的信息,唯一的方法就是不停地按CTRL+ALT+PAUSE组合键来暂停输出~~~有心要把它改成文件输出吧,想到要一个一个地把printf改成fprintf(那时还不懂文本编辑工具),又怕了。真想有个简单有效的办法!!!后来才知道,有个东西叫重定向——— 是什么转载 2014-02-01 18:26:06 · 5816 阅读 · 3 评论 -
freopen函数在竞赛中的使用
在做acm题目的过程中,我们需要在本地机器上调试。调试过程中,如果输入数据少还可以接受,但如果输入数据很庞大的话,我们就很难忍受一次又一次的重新输入和调试了。通过google,找到一种简便的方法,那就是freopen函数。 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。 下面为函数的简介,详细可参见 http://www.转载 2014-02-01 17:37:47 · 1384 阅读 · 3 评论 -
HDOJ 1.1.8 A+B for Input-Output Practice (VIII)
#includeusing namespace std;int main(){int n,m,sum;cin>>n;for(int j=0;j{cin>>m;sum=0;for(int i=0;i{int g;cin>>g;sum+=g;}coutif(jcout}return 0;}原创 2014-01-31 00:56:29 · 639 阅读 · 0 评论 -
7744问题
//7744问题(1)#include#includeint main(){int a, b, n;double m;for(a = 1; a for(b = 0; b {n = a*1100 + b*11;m = sqrt(n);if(floor(m+0.5) == m) printf("%d\n", n);}return 0;}转载 2014-01-29 13:50:24 · 882 阅读 · 1 评论 -
算法竞赛第一章练习
//年份,输入年份,判断是否为闰年。如果是,则输出“yes”,否则输出“no”。#includeint main(){int n;scanf("%d", &n);if(n%4==0 && n%100==0 || n%400==0)printf("%s\n", "yes");elseprintf("%s\n", "no");return 0;}原创 2014-01-28 15:01:21 · 699 阅读 · 0 评论 -
ACM起航ing
#includeint main(){int n;scanf("%d",&n);printf("%d%d%d\n",n%10,n/10%10,n/100);//n/10意味着去掉个位,n/100意味着去掉个位和十位return 0;}加油!!!原创 2014-01-26 12:59:02 · 566 阅读 · 0 评论 -
变量变换
方法一:三变量法#includeint main(){int a,b,t;scanf("%d%d",&a,&b);t=a;a=b;b=t;printf("%d %d\n",a,b);return 0;}方法二:#includeint main(){int a,b;scanf("%d%d", &a, &b);a =原创 2014-01-26 13:14:40 · 748 阅读 · 0 评论 -
输的有因有果,记住了!
ACM选拔赛彻底的输了,输的有因有果,真丢人~真弱菜!原创 2013-12-10 21:31:52 · 599 阅读 · 0 评论 -
zjut1005 做幻方
Description:Apple最近迷上了做幻方,Apple还是个中高手,只要你说个奇数N就能把N*N的幻方做出来。其实你可以比他做得更好的。Apple总是画得很乱,而你可以利用程序排得很整齐^_^ 幻方的要求:每一行,每一列,还有两条斜线上数字的和都相等Input:每行一个数N(0Output:输入一个奇数,输出一个幻方,每个数占3格,顺序参照样板输出,原创 2014-04-17 23:55:14 · 1290 阅读 · 0 评论 -
ACM题集以及各种总结大全!
ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正。 一.ACM入门 关于ACM 百度百科连接 杭州电子科技大学(hdu)ACM题目 连接转载 2014-04-19 13:51:59 · 1046 阅读 · 0 评论 -
奇数阶幻方的经典方法-罗伯法
转自于:所谓幻方,也教纵横图,就是在n×n的方阵中放入1到n2个自然数:在一定的布局下,其各行、各列和两条对角线上的数字之和正好都相等。这个和数就叫做“幻方常数”或幻和。 构造幻方的方法: 奇数阶幻方,也就是3阶、5阶、7阶……幻方,那么如何构造这样的幻方呢? 我们可以采取罗伯法(也叫连续摆数法),其法则如下: 把转载 2014-04-17 23:16:29 · 24108 阅读 · 0 评论 -
floyd算法
转自:http://blog.youkuaiyun.com/zhongkeli/article/details/8832946这个算法主要要弄懂三个循环的顺序关系。弗洛伊德(Floyd)算法过程:1、用D[v][w]记录每一对顶点的最短距离。2、依次扫描每一个点,并以其为基点再遍历所有每一对顶点D[][]的值,看看是否可用过该基点让这对顶点间的距离更小。算法转载 2015-11-20 20:37:48 · 651 阅读 · 0 评论 -
最短路径—Dijkstra算法和Floyd算法
转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.htmlDijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的转载 2015-11-20 20:36:06 · 361 阅读 · 0 评论 -
AVL树的旋转
转自:http://blog.youkuaiyun.com/gabriel1026/article/details/6311339 平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树,它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O(log n) AVL树的旋转一共有四种情形转载 2015-11-05 21:07:52 · 608 阅读 · 1 评论 -
KMP算法的Next数组详解
转自:http://www.cnblogs.com/tangzhengyue/p/4315393.html?utm_source=tuicool&utm_medium=referral网上有很多讲解KMP算法的博客,我就不浪费时间再写一份了。直接推荐一个当初我入门时看的博客吧:http://www.cnblogs.com/yjiyjige/p/3263858.html这转载 2015-11-05 19:11:58 · 432 阅读 · 0 评论 -
浅尝KMP算法
转自:http://blog.163.com/kazenoyume@126/blog/static/166753923201462783123487/最近在工作之余,参加了hihocoder推出的编程提高班。这个编程提高班真的很有意思,它的讲课内容是跟算法分析设计有关的。而这周讲课的内容,是大家都耳熟能详的KMP算法。在大二的时候,我曾经学习过KMP算法,当时还刷了好几道OJ题转载 2015-11-05 19:10:05 · 836 阅读 · 0 评论 -
全排列的六种算法
转自:http://mengliao.blog.51cto.com/876134/824079转载 2014-09-11 22:30:53 · 950 阅读 · 0 评论 -
最长公共子串(连续)问题
转自:http://blog.youkuaiyun.com/steven30832/article/details/8260189转载 2014-06-08 23:00:52 · 595 阅读 · 1 评论 -
c++ vector删除元素
现在用stl的人越来越多, stl确实是套很漂亮的算法和数据结构库. 但是初用stl的人往往会遇上很多问题.从一个容器中删除元素,是很常用的操作,但是也是初学者常会犯错误的地方,删除map和list中元素可能会犯迭代器失效的错误. vector是stl里很常用的一个容器, 和map,list等容器相比, 从vector中删符合某些条件的元素有更多的麻烦.比如,我们要完成如下的任务.有下转载 2014-04-09 21:07:59 · 650 阅读 · 0 评论 -
ACM-必备知识点
转自:http://blog.youkuaiyun.com/liygcheng/article/details/12352743时间复杂度(渐近时间复杂度的严格定义,NP问题,时间复杂度的分析方法,主定理)排序算法(平方排序算法的应用,Shell排序,快速排序,归并排序,时间复杂度下界,三种线性时间排 序,外部排序)数论(整除,集合论,关系,素数,进位制,辗转相除,扩展的辗转相除,同余运转载 2014-05-07 14:09:54 · 1609 阅读 · 0 评论 -
BFS/DFS 模板 代码
[cpp] view plaincopyprint?"font-size:18px">#include #include #include #include using namespace std; const int maxn=100; bool vst[maxn][maxn]; // 访问标记 int dir[4][2]转载 2014-05-07 14:06:23 · 585 阅读 · 0 评论 -
bfs与dfs
转自:http://blog.youkuaiyun.com/lulipeng_cpp/article/details/7524133写在最前的三点:1、所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次。2、实现bfs和dfs都需要解决的一个问题就是如何存储图。一般有两种方法:邻接矩阵和邻接表。这里为简单起见,均采用邻接矩阵存储,说白了也就是二维数组。3、本文章的小测试部转载 2014-05-07 12:51:08 · 690 阅读 · 0 评论 -
POJ题目分类【实在是不知道哪个是原创了】
初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:转载 2014-04-19 13:41:39 · 577 阅读 · 0 评论 -
浙工ACM1886
#include#includeusing namespace std;int main(){int n;cin>>n;int i,j,k;for(i=0;i string str;cin>>str;int count=0;bool t=true;int b,y;int s=str.length(); for(原创 2013-11-30 16:33:12 · 669 阅读 · 0 评论 -
浙工ACM1823
#include#includeusing namespace std;int main(){int n;cin>>n;while(n--){int m;cin>>m;int *a = new int[m];string *s = new string[m];int k;string g;int max=0;for(int h=0;hci原创 2013-11-27 18:55:13 · 533 阅读 · 0 评论 -
浙工ACM1033
#includeusing namespace std;int main(){int n;cin>>n;while(n--){int a[3];int i;for(i=0;icin>>a[i];if(a[0]+a[1]==a[2])coutelse if(a[0]-a[1]==a[2])coutelse if(a[1]-a[0]==a[2])原创 2013-11-27 23:37:22 · 614 阅读 · 0 评论 -
浙工ACM1738
#includeusing namespace std;int main(){int n;while(cin>>n){for(int i=1;iint t=65;for(int j=0;jcoutfor(int k=0;kcoutt++;}cout}}return 0;}原创 2013-11-23 14:50:11 · 595 阅读 · 0 评论 -
浙工ACM1887
#includeusing namespace std;int Fibonacci(int a,int b,int n){ if(n==1)return a; else if(n==2) return b; else if(n%2!=0) return Fibonacci(a,b,n-1)+Fibonac原创 2013-11-22 20:15:43 · 553 阅读 · 0 评论 -
浙工ACM1601
#includeusing namespace std;int main(){int a[100]={0};int b,c;int d=0;for(int w=0;w{while(cin>>b>>c){a[d]=b+c;d++;for(int j=0;j{for(int k=0;k{if(a[k]>a[k+1])s原创 2013-11-23 16:11:33 · 692 阅读 · 0 评论 -
浙工ACM1822
#includeusing namespace std;int main(){int n;cin>>n;while(n){int m,k=0;cin>>m;int *a = new int[m];for(int i=0;icin>>a[i];if(a[i]=100)a[i]=0;}for(int j=0;jint h=a[j]%1原创 2013-11-23 14:41:21 · 591 阅读 · 0 评论 -
浙工ACM1825
原来代码:#include#includeusing namespace std;int main(){string str;while(cin>>str){int *a = new int[str.length()];for(int i=0;ia[i]=str[i]-'0';for(int j=0;jfor(int k=0;kif(a[k]sw原创 2013-11-23 13:51:00 · 585 阅读 · 0 评论 -
浙工ACM1083
#include#includeusing namespace std;int main(){string str;int a,b;while(cin>>str>>a>>b){if(a==0&&b==0)break;else{for(int i=0;icoutfor(int j=0;jcoutfor(int k=0;kcoutcout原创 2013-11-23 01:46:13 · 679 阅读 · 0 评论 -
浙工ACM1015
哈哈,自己想出来的,很短的代码!求组合数!!!终于AC了,给自己赞一个!!!#includeusing namespace std;double zh(int n,int m){ double t=m,h=1; for(int i=0;i h*=n/t; t--; n--; } r原创 2013-11-21 22:12:04 · 614 阅读 · 0 评论 -
[转]提问的智慧
挂在这了,我看了觉得蛮好,希望对他人也能有所帮助,其次是骗访问量。在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。 首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。 如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩转载 2013-11-04 12:18:55 · 597 阅读 · 0 评论