- 博客(136)
- 收藏
- 关注
转载 RQNOJ 39 饮食问题 解题报告
就是暴力搜索,用f[i]为0为1代表是否能够构成着一种,如果能就是1不然就是0,然后代码就出来了:#include <stdio.h>#include <stdlib.h>char f[35001];int main(int argc, char **argv){ int i, j, max = 0; int m, n, a...
2011-09-25 18:47:00
157
转载 RQNOJ 36 数石子 解题报告
这题让我学到了一个技术啊,那个什么线段树神马的都是浮云,真的是浮云,查并集才是王道,用好查并集线段树可以秒杀,空间需求更低,效率更高,为什么不用查并集呢!!! f[i]代表i节点所在的集,d[i]代表i距离f[i]之间有多远, 然后更多题解看我转的内容: 初看本题,似乎没有思路,动态规划、贪心、递推等常规方法似乎行不通。但仔细观察题目条件,发现原体实际是告知一部分线段的和,求...
2011-09-25 14:12:00
194
转载 RQNOJ 35 营救 解题报告
SPFA,纯搜索,如果走到下一个位置的体力可以更少那就用那个更少的,如果一样多,看走的步数,用少的,就这样一个广搜。 代码如下:#include <math.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#define QMAX 2500...
2011-09-25 08:12:00
170
转载 NOIP 2005 过河 解题报告
这题考的是压缩,当两个石子之间的距离大于100的时候就让他们变成100,然后计算就十分方便了,代码如下:#include <stdio.h>#include <stdlib.h>#define min(a, b) ((a)<(b)?(a):(b))int num[101];int f[10101];int stone[1010...
2011-09-17 22:07:00
124
转载 NOIP 2001 Car的旅行路线 解题报告
这题要先求出矩阵中的第四个点,利用向量,在纸上画一下绕来绕去的就可以得出x=x1+x2-x0. y=y1+y2-y0。因为三个点构成了一个直角三角形,那我就设(x0, y0)90度角的顶点,然后就有上面的那个公式了。嗯,然后就是初始化,再然后就是暴力搜索就是的了。#include <math.h>#include <stdio.h>#inclu...
2011-09-11 07:37:00
118
转载 NOIP 1999 Cantor表 解题报告
一个类似于数学公式的公式,嗯,语言无法表达,看代码吧,(估计一会儿还真看不懂。)#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ int i, j; int k, l, m; int n; scanf("%d", &n);...
2011-08-30 11:07:00
121
转载 NOIP 1998 进位制 解题报告
纯水题,最上面一行去掉,最下面一行去掉,在剩下的(n - 1) * (n - 1)的矩形里面,长度为一的进制数的出现次数减一就是代表几,比如样例吧:5+ L K V EL L K V EK K V E KLV V E KL KKE E KL KK KV 上面,红色的L出现了一次,就代表0,K出现两次就代表1,两位数都不考虑...
2011-08-29 22:19:00
89
转载 RQNOJ 34 紧急援救 解题报告
SPFA,直接搜索就行,代码如下:#include <stdio.h>#include <stdlib.h>#define Q_MAX 100000char map[1000][1000];int dis[1000][1000];struct node{ int x, y;}queue[Q_MAX];int head, ...
2011-08-28 21:03:00
145
转载 RQNOJ 30 愚蠢的矿工 解题报告
树形动态规划,第一次接触这样的树形动态规划,应该说是彻底的,以前的那个什么没有上司的舞会都是小儿科,嗯,思路见网上同类报告(偷懒) 代码:#include <stdio.h>#include <string.h>#include <stdlib.h>int num[1001];struct node{ int left...
2011-08-27 23:08:00
161
转载 RQNOJ 107 Ural的鹰蛋实验 解题报告
f[i][j] = min{max{f[k - 1][j], f[i - k][j - 1]} + 1}; 然后因为最多1000,2^10=1024所以超过10个蛋都没用了,所以就if(m > 10){m = 10;} 代码:#include <stdio.h>#include <string.h>#include <s...
2011-08-25 18:29:00
159
转载 TYVJ 1123 道路游戏 解题报告
转解题报告:http://hi.baidu.com/1996102129/blog/item/6e6fcd50853bb814367abec1.html/cmtid/a69829e65dc5e920b93820fd 我觉得这题的难点是彻底读懂题目,确实难读懂。实话。 我的代码如下:#include <stdio.h>#include <stdli...
2011-08-24 14:08:00
118
转载 TYVJ 1098 任务安排 解体报告
这题我还是没看太懂,准确的说是不知道方程是不是正确的,但是隐隐约约感觉又是对的额,嗯……题解的网站发上来吧,你们自己看去吧。 http://hi.baidu.com/greeeeeeen/blog/item/9ae3b0fa52241d939f51468c.html 代码如下:#include <stdio.h>#include <stdli...
2011-08-23 10:36:00
113
转载 TYVJ 1097 MM不哭 解题报告
嗯,看网上的题解吧,我推荐一个,觉得不错的,不贴上来了,直接放地址:http://hi.baidu.com/qq953892596/blog/item/4c17eb807c98c8b20cf4d202.html 代码:#include <stdio.h>#include <stdlib.h>#define min(a, b) ((a)...
2011-08-22 22:52:00
132
转载 RQNOJ 28 [Stupid]愚蠢的宠物 解题报告
直接搜就是了,一个点向根出发,到的每个都记录一下,然后另一个点再搜,第一个被标记的就是了。#include <stdio.h>#include <stdlib.h>int p[1000001];int time[1000001];void srch(int i){ while(i != 1){ time[i] = 1;...
2011-08-21 16:58:00
126
转载 RQNOJ 23 花生采摘 解题报告
嗯,我练习了下二叉堆,代码写得挺长的,其实题目比较简单,就是贪心就行…… 嗯,上代码吧:#include <math.h>#include <stdio.h>#include <stdlib.h>#define left(i) (((i) << 1) + 1)#define right(i) (((i) &...
2011-08-20 15:55:00
184
转载 RQNOJ 22 火星人 解题报告
怎么说呢,都说是全排列,但是我不会(等会儿看看),康拓排序我觉得用不了,因为太大了,long long都装不下,但是m的范围又小,所以可以直接枚举,代码如下:#include <stdio.h>#include <stdlib.h>int num[10000];int used[10001];int m, n;int t;v...
2011-08-19 21:15:00
109
转载 NOIP 1998 上下车问题 解题报告
看到一个很好的结题报告,转一下:http://zhurui250.blog.163.com/blog/static/13727052020115273939197/【分析】数学推论题,我列一下站数 1 2 3 4 5 6 …… N上车人数 A F A+F A+2F 2A+3F 3A+5F …… 0...
2011-08-19 15:50:00
307
转载 NOIP 1998 普及组 2的幂次方 解题报告
虽说是普及组,还是不好处理啊!想了好久,最后决定使用一个栈来维护所有的枚举,总的来说我这里算是用了两个栈(因为BFS本身就能算一个栈),这个题目真的有挑战性啊,算法没什么,但是规律方面的东西好重要饿。。。。 不说了,代码:#include <stdio.h>#include <stdlib.h>int flag = 0;int sta...
2011-08-19 10:41:00
255
转载 NOIP 2001 数的划分 解题报告
我直接模拟的,第i个数字必定大于或等于第i-1个数字,我是按照这种思想模拟的,那么每种情况就只会考虑一次,然后需要一个重大剪枝: 当i=k-1的时候,就不去枚举了,直接得到答案,用n-sum,我还有一个小剪枝,因为我的第i个数一定大于或等于第i-1个数,那么如果第i个数加到第k个数就大于n的话,就没必要继续枚举了。 2011年08月29日: 刚刚发现,上次的代码有问题,...
2011-08-17 23:43:00
116
转载 NOIP 2001 求先序排列 解题报告
裸搜索,然后处理下范围就行,代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>char middle[9], last[9];void srch(int m_s, int m_e, int l_s, int l_e){ int i; fo...
2011-08-17 17:22:00
139
转载 NOIP 2000 单词接龙 解题报告
数据不大,直接枚举……嗯,然后就是,比如:1212和1212接龙之后是121212,而不是12121212,就这个注意的,代码:#include <stdio.h>#include <string.h>#include <stdlib.h>char str[20][1001];char tmp[1001];int f[2...
2011-08-17 17:06:00
81
转载 NOIP 2010 引水入城 解题报告
可以如果题目有解的话(即,最后一排中没有没有水的城市。),那么第一排中的任意一个城市能够运水到达最后一行的城市是一个区间,是连续的!证明我不写了,我也不会,呵呵。以前看过一篇,然后知道这个信息之后,直接贪心就行了,看代码吧:#include <stdio.h>#include <string.h>#include <stdlib.h>...
2011-08-16 19:00:00
64
转载 NOIP 1998 连接多位数 解题报告
就是排序,唯一麻烦的就是确定先后顺序的函数,就是比较函数啦,嗯,看代码吧:#include <stdio.h>#include <string.h>#include <stdlib.h>char num[20][10001];char tmp[10001];int com(const void *a, const v...
2011-08-16 15:05:00
146
转载 NOIP 2001 统计单词个数 解题报告
比较难做的DP吧,首先要预处理一个w[i][j],代表从i~j之间存在的单词个数,嗯。。 然后f[j][i] = max(f[l][i - 1] + w[l + 1][j]) (i<l<j) 代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>...
2011-08-15 18:00:00
115
转载 TYVJ 1142 阶乘统计3 解题报告
这个题目刚开始因为就是枚举,后来数据太大,不能搜,就想到数学方法了,答案就是n/5+n/5^2+n/5^3,知道5^k > n,就不加了。 代码如下:#include <stdio.h>#include <stdlib.h>long long ans;int main(int argc, char **argv){ in...
2011-08-14 23:03:00
82
转载 TYVJ 1143 飘飘乎居士的约会 解题报告
f[0][i][j]代表不走房子到达i, j的最短路径是多少,f[1][i][j]代表走房子到达i, j的最短路径是多少(并不一定是从i, j走房子)? 然后看我的代码吧,实在不好说……#include <stdio.h>#include <string.h>#include <stdlib.h>#define Q_MAX 1...
2011-08-14 22:52:00
109
转载 TYVJ 1125 JR's chop 解题报告
这题比较悲剧吧,始终只有80分,到最后才发现数组开销了一个1,应该是[101][51],我开的[101][50],然后。。。。80分咯~ 代码如下:#include <stdio.h>#include <stdlib.h>#define min(a, b) (((a)<(b))?(a):(b))int num[101];in...
2011-08-13 23:52:00
88
转载 NOIP 2009 最优贸易 解题报告
就实现正向从1点出发SPFA,获得min[i],就是到达i点能最低购买到的价格,然后反向(将图反向),从n点开始SPFA,获得max[i],就是从i点到终点能够卖出的最大的价格,然后就是寻找差价最大的i,输出答案即可。#include <stdio.h>#include <stdlib.h>int num[100000];int map[1...
2011-08-13 23:50:00
60
转载 NOIP 2008 双栈排序 解体报告
也不知是怎么,以前没看懂为什么要用二分图,现在就懂了,以后也许碰到类似的题目还会想到用二分图,因为当i<j<k,且num[i]<num[j]&&num[i]>num[k]的时候,肯定是不能将i和j放在同一个栈了(是放在同一个栈,不是同时在一个栈里面。) 嗯,上代码把:#include <stdio.h>...
2011-08-11 11:51:00
58
转载 TYVJ 1124 花店橱窗 解题报告
f[i][j]代表将第i束花插进第j个花屏所能获得的最大的分,方程是: f[i][j] = max(f[i - 1][k] + map[i][j]) (i -1=<k<j),代码如下:#include <stdio.h>#include <stdlib.h>int f[101][101];int map[101][101];...
2011-08-10 18:07:00
88
转载 NOIP 2009 靶形数独 解题报告
就是用位运算,直接读出一行中应该放的位置和该放的数字,然后枚举。但不是随意的枚举,要从已经填的最多的那行开始搜,最后搜内容最空白的一行,至于为什么呢?想一想吧,一行中要填的空白多(就是已经填的很少),那每个个子里面可以装的数字就越多,相反,需要填写的很少,那么枚举的情况就少。就是说比如第i行只有一个数字要填,在这一列下面还有几行是空白的,那这一个是确定的,是已知的,只有这一种可能,那...
2011-08-10 16:24:00
178
转载 TYVJ 1512 异或密码 解题报告
可以用朴素算法,在TYVJ上2000ms,别的评测机可能超时,所以修改成了线段树的,代码如下:#include <stdio.h>#include <stdlib.h>struct tree{ int l, r; int ll, rr; int xor;}tree[100001];int end;int num[5000...
2011-08-09 17:20:00
112
转载 Fedora 删除旧内核
由于Fedora更新升级非常的频繁, 所以, 非常有必要清除陈旧的内核,方法如下:1. 查看当前系统中已安装的内核相关包:[root@knityster ~]# rpm -qa | grep kernelkernel-headers-2.6.32.12-115.fc12.i686kernel-firmware-2.6.32.12-115.fc12.noarchke...
2011-08-08 16:44:00
90
转载 RQNOJ 21 FBI树 解题报告
DFS模拟,然后srch(i, j)表示输出用i, j组成的树的后序遍历,返回0就是都是0,1就是都是1,2就是0,1都有。。#include <stdio.h>#include <string.h>#include <stdlib.h>char str[1025];char put[3] = {'B', 'I' ,'F'}...
2011-08-07 23:46:00
125
转载 TYVJ 1116 被7整除 解题报告
数论题目?也许把,不过暴搜在TYVJ的平台上能用(评测机太好了!)因为那个数论的在考试里的话,打死我也是想不到的,所以就模拟了,果断不太多废话:#include <stdio.h>#include <stdlib.h>int pow_(int a, int b){ if(b == 0){ return 1; } if(...
2011-08-07 23:05:00
115
转载 强连通分量的三种算法
常见的(我见过的)强连通分量的三种算法有:1. Kosaraju算法(双DFS)2.Tarjan算法 3.Gabow一.Kosaraju算法算法的核心实现是,首先DFS一遍,得到一个DFS森林,在此过程中得到所有点的拓扑序列(按结束时间由高到低),之后我们建一个反向图,按反拓扑序(结束时间由高到低)进行第二次DFS,则此时得到的每一棵树都是一个强连通分量,这个画个图演示一下比...
2011-08-07 21:43:00
204
转载 强连通分量-Trajan算法
tarjan基于这样一个定理:在任何深度优先搜索中,同一强连通支内的所有顶点均在同一棵深度优先树中。也就是说,强连通分量一定是有向图的某个深搜树子树。证明:在强连通支内的所有结点中,设r第一个被发现。因为r是第一个被发现,所以发现r时强连通支内的其他结点都为白色。在强连通支内从r到每一其他结点均有通路,因为这些通路都没有离开该强连通支(据引理1),所以其上所有结点均为白色(未染色,未访问...
2011-08-07 21:27:00
143
转载 TYVJ 1111 舞会 强联通分量版解题报告
终于琢磨出来了强联通分量,看了不少资料啊~~有三种算法,我用的第一种,最慢的,但是也是最普遍的。。 具体讲解看我转的一篇文章吧,代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>int num[200];int map[200][200];in...
2011-08-07 21:08:00
104
转载 有向图的强连通分量
有向图的强连通分量『StronglyConnectedComponent』(SCC)一、Kosaraju算法1、伪代码Kosaraju_Algorithm:step1:对原图G进行深度优先遍历,记录每个节点的离开时间。step2:选择具有最晚离开时间的顶点,对反图GT进行遍历,删除能够遍历到的顶点,这些顶点构成一个强连通分量。step3:如果还有顶点没...
2011-08-07 18:12:00
169
转载 TYVJ 1119 a^n2 解题报告
类似于二分的算法吧,看代码:#include <stdio.h>#include <stdlib.h>int pow_(int a, int b){ if(b == 0){ return 1; } if(b & 1){ return (pow_((a * a) % 1012, b / 2) * a) % ...
2011-08-07 17:35:00
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人