上一页 1 ··· 8 9 10 11 12 13 14 下一页
摘要: 简单的模拟吧,注意事项还是有一点的,没什么特别好说的- -。#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ int i, a; int have = 0; int save = 0; for(i = 1; i <= 12; i++){ scanf("%d", &a); have = have + 300 - a; if(have < 0){ printf("-%d\n", i); return 0; } save += 阅读全文
posted @ 2011-07-01 20:52 zqynux 阅读(886) 评论(0) 推荐(0) 编辑
摘要: 看到了觉得无法下手啊!但是看了题解就知道了(是废话不~濮~)。 设p[i]是第i个请求的地方,那么根据题意能够知道在完成第i个请求之前,三个人有一个是在p[i - 1],而且也可以知道完成第i个请求后,有一个人在p[i]上。设完成第i请求之前(未完成)三个人的位置分别是x,y,p[i-1],那么完成请求后就会有三种情况,x前往p[i],三个人的坐标变成y,p[i-1],p[i];或者y前往p[i],三个人的坐标变成x,p[i - 1], p[i];或者p[i - 1]前往p[i],变成:x,y,p[i]。 自然有下面的方程:f[i][x][y] = f[i - 1][x][y] + map[. 阅读全文
posted @ 2011-07-01 20:04 zqynux 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 考的是动态规划的状态压缩吧,两个石子之间的距离若大于100就变成100,就压缩下来了。然后方程是f[i] = min{f[i - j]} + map[i]; 代码:#include <stdio.h>#include <stdlib.h>int map[10101];int f[10101];int stone[101];int com(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(int argc, char **argv){ int i, j; int s, t, min; 阅读全文
posted @ 2011-06-27 12:27 zqynux 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 这题网上的各个题库都不完整,完整的我发一次:题目的原描述如下,rqnoj和vijos的题目都不完全,少了一幅图片,表格也不清晰。。【问题描述】我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成。每个工件的每道工序都有指定的加工时间。每个工件的每个工序称为一个操作,我们用记号j-k表示一个操作,其中j为1到n中的某个数字,为工件号;k为1到m中的某个数字,为工序号,例如2-4表示第2个工件第4道工序的这个操作。在本题中,我们还给定对于各操作的一个安排顺序。例如,当n=3,m=2时,“1-1,1-2,2-1,3-1,3-2,2-2”就是一个给定的安排顺序. 阅读全文
posted @ 2011-06-27 12:19 zqynux 阅读(943) 评论(1) 推荐(1) 编辑
摘要: 这题好像是某届NOIP的原题,我用的简单DP,因为主件最多两个子件,所以没什么考虑的,多判断几次,但是这代码太猥琐了,写的我一头的汗。不过还好,一次AC!================================华丽的分割线================================#include <stdio.h>#include <stdlib.h>struct thing{ int p, i; int len; int sub[2];}thing[60];int end;int f[32001];int main(int argc, char **ar 阅读全文
posted @ 2011-06-24 22:52 zqynux 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 是某某年的NOIP原题吧,题目的思路如下: f[i]是1~i的最长上升序列,g[i]代表从后到前的最长上升序列,然后枚举每个i,求n-max{f[i] + g[i] - 1},就是答案。================================华丽的分割线================================#include <stdio.h>#include <stdlib.h>int f1[100], f2[100], num[100];int ans;int main(int argc, char **argv){ int n; int i, j; 阅读全文
posted @ 2011-06-23 22:33 zqynux 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 111. Very simple problem每个测试点时间限制: 0.50 sec.每个测试点内存限制: 4096 KB给你一个自然数X,输出平方小于或等于X的最大整数。输入输入包含一个自然数 X (1≤X≤101000).输出输出答案样例输入16样例输出4================================华丽的分割线================================ 第一眼,觉得是个水题,看了数据范围发现暴难! 我的第一个做法是,网上看到的一个:用X减1,再-3,再-5,再-7,再-2k-1,到小于0,输出K-1。 最开始觉得不行,后来试了一下,发现:1=1= 阅读全文
posted @ 2011-06-12 19:46 zqynux 阅读(703) 评论(0) 推荐(0) 编辑
摘要: 110. Dungeon每个测试点时间限制: 1 sec. 每个测试点内存限制: 4096 KB太空探险家的任务是在在M星球上发现地牢。地牢的大厅是一个充满光亮的球面。探险家们发现光线在球面上反射准寻一个普遍的定律(入射角等于出射角,入射光线,反射光线和垂直反射面的线(译者:也许是法线吧)在同一平面上。)根据一个古老的传说,当光线按照适当的顺序进行反射时,同往装有珍贵的古老的知识的房间的门就会被打开。你不是去猜正确的序列,你的任务要简单得多。你会得到球面的位置和半径,射线被射出的位置和射线被传播的方向,然后你需要找到反射的球面的集合。输入第一行的包含一个整数n (1≤n≤50) - 球面的总数 阅读全文
posted @ 2011-06-11 10:59 zqynux 阅读(451) 评论(1) 推荐(1) 编辑
摘要: 109. Magic of David Copperfield II每个数据时间限制: 0.50 sec.每个数据内存限制: 4096 KB著名的魔术师大卫科波菲尔喜欢表演下面的魔术:一个N行N列不同图片的矩阵出现在大屏幕上,我们给所有的图片这样命名:12...N............N*(N-1)+1N*(N-1)+2...N*N每一个参与的观众被要求将手指放在左上方的图片上(即编号为1的图片),魔术师开始了:魔术师告诉观众在图片上移动k次(移动是把手指放到上下左右相邻的图片上,如果那儿有图片的话),然后他(魔术师)的手微微一指(指向一些图片)并说:“你不在这里”,然后……是真的!你的手指 阅读全文
posted @ 2011-06-10 18:17 zqynux 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 还是从原来的博客转一两篇有意义的过来吧! 最近USACO写到了(第三次)1.3.3,这一题(http://zqynux.blog.163.com/blog/static/16749959720109291375436/)我用的是我自己原创的一个算法(可能也有别人想到了,但是对于我来说,确实是我自己独立思考出来的),在此发表一下。 程序:输入:一行字符串,输出:最长的回文字符的长度以及把它们给输出来。 如: 输入:1596156432111234 输出:6 432111234回文的性质 首先先把题目撇开,单说回文数的性质,如abcba是一个长度为5的回文数,那它有什么性质呢? 回文数顾名思义,. 阅读全文
posted @ 2011-06-09 18:48 zqynux 阅读(617) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 下一页