摘要:
半夜起来再更新一篇。。qsort排序有时候经常忘,忘了没关系,不过找不到课件就头疼了。。。索性把这个也贴上,以后忘了的话可以随时看。。C语言标准库函数 qsort 详解qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );用法以及参数说明:S 阅读全文
摘要:
昨天刚说过一天写一篇博客, 眼看今天要断网了,我还没有写,于是乎就远程了一下, 加夜班也要把这篇给写好。。首先要感谢李伟学长和小媛同学。。这道题目困扰我两天,今天上午课都没上,写了一上午,最后仍然wa ,中午让李伟学长看了下代码,他英语貌似不是很好,让我给他说的题目意思。。汗。。所以按我说的题意,他是看不出来错误的。。最后很无奈的读别人的代码,才发现题目意思理解错了。。于是迅速写好代码在poj上交了,A了,,一上午没白逃。。下午放学回来,再把代码交到zoj上,wa,当时一愣,竟然会是wa,但是我把zoj上的测试实例测过来一遍也没有错,最后不得不请教小媛。。才知道需要对一个空行进行特殊的处理。。 阅读全文
摘要:
最近才发现最短路的算法实在是太多了,就比如对于这道题目,可以用Dijkstra和优先队列Dijkstra又可以用多源做 和 反向图+单源的!优先队列类似于这个Bellman-Ford;至于什么神马spfa估计也是和这个优先队列差不多。。我一直都比较喜欢这个dijkstra,这次也是用这个来做的,直接用多源。。题目意思大家都能看懂吧 ^_^贴代码:# include<stdio.h># include<string.h># define PI 0xfffffffint adj[1005][1005],low[1005],visit[1005];int main(){ in 阅读全文
摘要:
看书的时候碰到了优先队列这个词,感觉很熟悉,但是具体怎么实现的又忘了。。又翻开以前写的代码,写成下面这个模板。体验喀斯特地貌Time Limit:1000MS Memory Limit:65536KTotal Submit:40 Accepted:13 Description 一次张mm去广西旅行,看到了喀斯特地貌,非常兴奋!他想走进里面一饱眼福,可是呢地面高低不平,他想找一条从进口到出口难度和最小的路,你能帮助他吗? 为了使问题简单,我们用一个正方形网格来表示景区的地貌,每个网格里有一个高度值,而且他只能从一个网格向左,右,上,下四个方向走,而且难度定义为所在网格的高度值和将要到的网格高度值 阅读全文
摘要:
去年的暑假集训的时候,也看了下树状数组,那时候没学会就放下了,前两天下载一个课件又好好的看下,感觉也理解了一点 ^_^...使用树状数组局感觉限性不小, 只有进行特殊的 题目才比较实用, 对一般的题目还是用线段树的好。。以后坚持每天都写一篇博客吧,记录下每天的心得^_^代码:/*所谓的树状数组*/# include<stdio.h>int a[20],m;int Lowbit(int n){ return n&(n^(n-1));/// 2的k次幂==n&(n^(n-1)) ( ^ 是异或的意思,) k表示把n转化为2进制后 后面的0的个数}int sum(int 阅读全文
摘要:
昨天下午做了一场选拔赛, 状态十分的不好,尽然和题目较上劲了。。。这几天在看一些关于二分图匹配的课件,以前学离散时没好好学, 又翻了下课本补习一下。。感觉匈牙利算法比较简单,也很容易理解,但是做起题来却不是那么容易,有的时候感觉题目和二分图匹配八竿子打不着,但是它就是二分图,感觉很无语。。今天做了第一道,确实是深有体会 —_— 题目大意:有两台机器A和B以及N个需要运行的任务。每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行。如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则机器A需要设置为模式yi。每台机器上的任务可以按照任意顺序执行,但是每台机器每转换一次 阅读全文
摘要:
趁机就再写一篇吧。。以前没写完整放在桌面上了,今天索性把它写好。也是最短路题,只不过多了一些个处理!n为1000, 用floyd必须超时,果断选择了Dijkstra ;这个题目有点像回溯,但是比回溯的简单一点!汉 语 题目 大家应该都可以理解吧。。直接贴代码啦:View Code 1 # include<stdio.h>2 # include<string.h>3 # define Min 0xfffffff4 int adj[1005][1005],visit[1005],tax[1005][1005],pay[1005],low[1005];5 int main() 阅读全文
摘要:
感觉这题出的不错,最短路+dp(01背包);好长时间没做过dp题了,做的时候又翻开算法开了一下,背包基本上忘完了,这段时间要好好的复习的一下。。题目大意就是总共有n个核电站,然后每个核电站都有一个能量power, 需要把总能量的一半以上消耗掉!从一个地方开坦克到这些核电站,坦克到达一个核电站,这个核电站的所有能量都被消耗了,这个坦克也必须留在这个核电站里!每个坦克1 unit distance costs 1 unit oil;问最少需要消耗多少oil !!最短路直接就用floyd,接下来就是01背包,思路很清晰!代码:# include<stdio.h># include< 阅读全文
摘要:
又是好久没写博客了。。今年基本上是参加acm的最后一年了,一定要把写博客的习惯坚持下来!最近一直在看最短路和最小生成树的题目!以前只是看过代码,然后自己有了一个自己的模版!别人有时说关于这样的题目用prim,floyd什么样的算法,感觉自己不会,就会我自己的那种!近来没事,想起了这个问题,就决定了解透彻,就从《实用算法分析与程序设计》这本书上找到了答案,才发现原来我自己的算法算得上是prim,原来我一直感觉最短路和最小生成树都可以那种方法,事实上也差不多,像dijkst和prim的确很相似!又从书上看到了另外一种求最短路的方法---floyd; 感觉这种算法比较好,对于数据量比较小的这种方法最 阅读全文
摘要:
又是好长时间没写博客了, 不过这段时间还是看了一些 课件, 学习了三分。二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;模版如下:int Cale(int ){}int Solve(int left ,int right){int mid,midmid; 阅读全文