自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

poj1837解题报告

这是一个很典型的动态规划中的01背包问题,G个砝码,每个砝码有C种放法。我们就可以按砝码的个数划分状态,共有G种状态,每种状态有多个选择,每次加一个砝码为一次状态转移,状态转移方程为:[code="c++"] for(i=1;i...

2012-09-25 19:18:51 175

原创 poj3295解题报告

挺简单的一道题目,练练手。思路很简单,和计算器比较像,将表达式带入值通过栈进行运算,一个循环是32次,列举pqrst所有的值的情况,如果32种情况得到的值相同则为正确的。值得一提的是采用多个数组简化运算,de保存了运算符"KANCE"的运算规则,se保存了32种情况下"pqrst"的值情况,通过这两个数组使得运算简化[code="c++"]Problem: 3295 User: go...

2011-11-05 16:05:19 187

7th_H

一道很简单的模拟题[code="c++"]#includeint main() { int a, b, X, vx, vy, vz; scanf("%d%d%d%d%d%d", &a, &b, &X, &vx, &vy, &vz); if (vx (3 * a / 2)) { ry = sy - a*2; } else if (sy > a / 2) {...

2011-05-17 15:51:12 148

7th_F

这道题目的解题思路是动态规划,通过N和K进行状态转移[code="c++"]#include #include int a[40][900];int n,k;void work(){ a[1][1]=1; for(int i=2;i

2011-05-17 15:49:55 144

7th_E

本题思路,首先求出每两点之间的距离,储存在d中,然后穷举所有情况,通过海伦公式计算三角形面积,找出最大的面积。[code="c++"]#include#includeint n;int x[110];int y[110];double d[110][110];double result=0;int main(){ scanf("%d",&n); fo...

2011-05-06 16:12:30 114

7th_D

这是一道稍微有点难度的模拟题,通过模拟实际运行的情况,通过队列进行宽搜,重点在于判断齿轮会不会卡住,最后得出结论。1.算法(1)预处理:将所有的齿轮坐标和半径读取,保存在x,y,r三个数组中,然后进行相切判断,两两进行判断,将结果放置在map中,map[i][0]表示有几个齿轮和第i个齿轮相切,map[i][1~x]分别表示和第i个齿轮相切的x个齿轮的号码。(2)操作:依次对1...

2011-05-06 16:11:48 143

7th_C

[code="c++"]#include#includeint main(){ int m,n; int result=0; char str[1000][10]; scanf("%d%d",&m,&n); for(int i=0;i

2011-05-06 16:11:01 116

7th_B

[code="c++"]#includedouble mul(double x,int y){ double result=1.0; for(int i=0;i

2011-05-06 16:10:18 108

7th_A

[code="c++"]#includeint main(){ int m,n; double min[100]; double temp; double result; scanf("%d %d",&m,&n); for(int j=0;j

2011-05-06 16:09:21 132

7th题目

7th_Local ACM@NJU 题目

2011-05-06 16:08:10 188

8th_D

[b] D. 穿越机房[/b][b]问题描述[/b] 众所周知,在机房里想从一个地方到另一个地方很困难。因为机房里不仅有很多的桌子,还摆了很多的椅子。现在,建冬哥想找嘉娃一起 apom,他不能在众目睽睽之下对着嘉娃大吼,所以,他必须走到嘉娃跟前。 我们把机房分为宽度为 w,高度为 h 的 w × h 个格子。每个格子或者...

2011-04-28 15:09:40 121

8th_C

[b]C. 大作业[/b][b]问题描述[/b] 由于之前宅得太深,到了期末了,嘉娃还有 N 个大作业没有写。以嘉娃的速度,他每天能且只能完成一个大作业。但是这 N 门大作业都有一个截止时间,如果超过这个时间再提交的话将会没有分数。现在,嘉娃要在 N 天内完成 N 门大作业,他给了你一份有 N 个大作业的截止时间和分...

2011-04-28 15:07:23 143

8th_B

[b]B. 嘉娃的难题[/b][b]问题描述[/b] 嘉娃的家庭作业里有很多数列填空练习题。填空练习题的要求是:已知数列的前四项,填出第五项。因为已经知道这些数列只可能是等差或者等比数列,所以他决定写一个程序来完成这些练习。[b]输入格式[/b] 第一行是数列的数目 T (0 ≤ T ≤ 40)。接下来 T 行每行均包含四个整数,表示一个...

2011-04-28 15:05:37 169

8th_A

[b]A. 采购[/b][b]问题描述[/b] 作为资深宅男,嘉娃醒着的时候就坐在电脑前。为了提高宅的效率,他连下楼吃饭的时间都不放过了。于是他需要每隔一段时间去超市进行一次大采购来保证有充足的食物储备。 嘉娃的学校里有两家超市,嘉娃每次只能去一家超市采购。为了省钱买点卡,嘉娃搞到了一份两家超市的物价表。...

2011-04-28 15:03:31 129

原创 poj1328解题报告

1.算法本题是一道贪心题,和《算法艺术与信息学竞赛》中的“照亮的山景”题极为相似。(1)首先我们求出在每个岛屿放雷达以后在x轴上所能覆盖的区间,是在x轴的上的一个线段,即在这一段上放置雷达可以覆盖到该岛。(2)我们把每个岛对应的线段找出来,只要在这些线段上放置一些雷达,使得所有的线段上都有雷达即可符合题意(注意如果半径为0或者坐标的y轴小于半径的话将无法完成覆盖,输出-1)。(3)...

2011-04-19 02:07:04 392

原创 poj2965解题报告

这道题目的思路和[url=http://godfrey90.iteye.com/blog/719363]poj1753[/url]的思路一样。有所不同的是这道题目中还需要输出搜索的路径,于是在unit中加了一个pre变量以记录搜索的路径,最后通过递归调用print_detail从前往后输出宽搜的结果。[code="c++"]Problem: 2965 User: godfrey90...

2011-04-16 17:43:59 120

原创 c语言中 *和[]的讨论

[b]1.声明定义与内存分配[/b]1.1一个由c/C++编译的程序占用的内存分为以下几个部分(1)栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。(2)堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。(3)全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初...

2011-03-28 22:45:15 682

原创 内存中的各变量分配验证

[code="c"]#include using namespace std;struct S{ int a; char b; int c; char d; char e; int f; double g; int h;};int main(){ S s; s.a = 10; s.b = 'b'; s.c = 30;...

2011-03-28 20:14:25 121

原创 状态压缩动态规划

引入首先来说说“状态压缩动态规划”这个名称,顾名思义,状态压缩动态规划这个算法包括两个特点,第一是“状态压缩”,第二是“动态规划”。状态压缩:从状态压缩的特点来看,这个算法适用的题目符合以下的条件:1.解法需要保存一定的状态数据(表示一种状态的一个数据值),每个状态数据通常情况下是可以通过2进制来表示的。这就要求状态数据的每个单元只有两种状态,比如说棋盘上的格子,放棋子或者...

2010-07-30 16:14:19 443

原创 poj2411解题报告

又是一道状态压缩动态规划的题目,于之前一道有异曲同工之妙,成功AC。1.算法(1)首先这道题目和之前的那道炮兵阵地类似,可以以行作为划分进行动态规划,后一行根据前一行的状态来确定。(2)动态规划最重要的是找状态转移方程。就这道题来说,一共是n行,m列。我们可以这样考虑:我们一行一行的放1*2的牌,在第i行放完以后,必须保证该行所有的格子被填满了。这时记录下第i行向第i+1行凸出的地方。...

2010-07-28 21:05:14 363

原创 poj1185 解题报告

AC这道牛B的题目,开心。虽然WA了4次,RE了2次。1.算法经典的状态压缩动态规划题。让我慢慢道来:(1)首先,看到这个题目想到的是暴力搜索,无所谓深搜还是宽搜,都需要对所有的情况进行穷举,10*100的格子,这样穷举的话基本上会超时。想到用贪心法,但是贪心法的结果是不正确的。(2)于是想到动态规划,动态规划的重点是找状态转移方程,需要状态记录的数组f(因为最终要求的是大炮个数,...

2010-07-28 01:43:19 169

原创 [转]动态规划的一些资料

1. 按状态类型分写在前面:从状态类型分,并不表示一题只从属于一类。其实一类只是一种状态的表示方法。可以好几种方法组合成一个状态,来解决问题。1.1. 编号(长度)动态规划共性总结本类的状态是基础的基础,大部分的动态规划都要用到它,成为一个维。一般来说,有两种编号的状态:状态(i)表示前i个元素决策组成的一个状态。状态(i)表示用...

2010-07-25 14:16:20 219

原创 [转]ACM新手之八大输入输出格式

在ACM题库中,不管是文件输出(输入)还是标准输出(输入),都有着一定的格式,下面我就以杭电1089——1096为例子,简单的介绍一下。第一种:A+B for Input-Output Practice (I)【输入】有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出。【输出】有多组输出,对应着每组输入,每组输出占一行。【代码】对于上述常...

2010-07-23 16:40:50 1375

原创 poj1753解题报告

1.算法核心是宽度优先搜索和位处理。要找出最快的步数,用宽搜。(1)宽度优先搜索数据结构:队列的单元unit包含x(用int的末16位记录16个位置的信息),rounds(记录第几轮达到当前的状态),i(记录该状态是通过翻动哪个棋子得来的,以避免返回先前的状态)。queue是一个队列,记录所有状态;p,q分别是队列的头尾指针。used记录已经存在的状态。(2)宽度优先搜索算法处理:...

2010-07-23 01:27:39 217

原创 poj3094解题报告

1.算法无,简单计算2.实现(1)注意c++库和c库的巧妙运用,本题要求一次读入一行。故用getline()比scanf()更好用,所以选择c++输入库。getline()用法getline(cin,str);(2)c++中string是一个类,长度为str.length(),需要引入的头文件是 c中是char[] 表示string,长度用strlen(str),需要引入的...

2010-07-21 19:30:44 152

原创 poj3006解题报告

1.算法很简单,就是读取3个数a,d,n,从a,a+d,a+2d等等中找素数,直到找到第n个2.实现运用判断素数的方法3.代码#include#includebool is_prime(int num);int main(){ int a,d,n; scanf("%d%d%d",&a,&d,&n); while(!((a==0)&&(d==0...

2010-07-21 18:48:01 88

原创 poj2255解题报告~

1.算法本题是给出一个树的先序和中序,输出它的后序。可以通过递归实现。举例说明先序:DBACEGF 中序:ABCDEFG(1)把整个7个字符作为一段,根据先序找出第一个根D,根据中序可以得出,D左边为ABC,右边为EFG。(2)对D两边递归进行(1)操作。(3)递归的终止条件是这一段中只有一个字符(即为叶结点)根据以上可以步骤可以生成一棵树,然后递归输出后序。ps:...

2010-07-21 16:34:03 145

原创 poj1503解题报告

1.算法题目比较简单,就是简单的高精度加法,一位一位的,加,进位,即可。2.实现result数组用来放结果,input用来放输入,没此将输入加到结果上。注意,最后去掉前面所有的03.代码#include#includeint main(){ int result[10000]={0}; int length=0; char input[100];...

2010-07-20 00:30:52 119

原创 [转]关于结构体内存

C语言中常用预定义的数据类型:类型: char short int long float double (long double)大小(字节数):  gcc3.2.2: 1 2 4 4 4 8 12  Visual C++:1 2 4 4 4 8 8ARM架构下被访问的变...

2010-07-19 21:15:44 221

原创 poj2262解题报告

1.算法原打算用筛法进行打出素数表,但是这样会超时,于是选取直接判断素数的方法。(在范围比较大的时候,可能用不到那么多的素数,打素数表反而更费时间,直接判断素数的方法看似比较慢,但是省略了前面很大一段打素数表的时间)。接着便是简单的遍历,因为不会出现wrong的情况,故很快找到结果。2.实现(1)之前想用c++文件输入输出的时候,发现要加上using namespace std,因为C...

2010-07-19 19:44:01 140

原创 poj1083解题报告

1.算法对每组数据进行求解。首先读入一组数据,通过一个结构体数组记录这组数据,然后将这组数据进行排序,排序算法是根据结构体中的s,若s相同则按照t排序。对排序后的数据一遍一遍的从左往右扫描,每扫描一遍可以完成多次不冲突的搬运,每次扫描的时间为10,一直扫描下去,直到所有的搬运完成,便可算出一共要的时间。注意:题目中没有说对应的s和t有st要调换位置。2.实现(1)同样用到了标准库q...

2010-07-18 21:14:46 159

原创 poj2739解题报告

1.算法通过筛法找出10000以内所有的素数,存到数组里。然后对每个输入的数num,尝试用连续的比num小的素数,用num减去这个这些连续的素数,如果结果是零,则在结果上加上1,最后输出结果。2.实现(1)对于数组初始化的时候,int a[10]={1}只能对数组的第一个字符进行初始化,但是int a[10]={0}可将整个数组进行初始化。关于c++中数组初始化,具体参见http://...

2010-07-18 17:19:27 105

原创 [转]poj题整理

OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)(2017 1218 2000 1046 1218 1003 1004 1005 1008 1013(枚举) 1207 1552 2105 2388 1316 2499 1163 1664)初期:一...

2010-07-18 13:40:29 124

原创 poj2159解题报告

1.算法主要是理解题意,根据题目意思上下两行的字符能够进行一一配对,于是将上下两行的字符根据出现次数进行排序,然后进行一一的比较,如果匹配的话即可,答案为YES,否则为NO2.实现(1)读取字符串,采用c语言的读取方式,注意在之前要声明字符串的空间char str[100];(2)调用库函数进行排序, qsort((void*)a,26,sizeof(int),com);第一个参数...

2010-07-18 13:34:03 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除