模拟题
Matrix1254
爱代码,爱加班,爱咖啡可乐
爱挑战,爱钻研,爱打游戏
爱晚起,也爱工作到深夜。
我擅长技术,崇尚简单和懒惰
我神秘而孤僻,沉默而爱憎分明
我行我素,我是程序员
展开
-
pat1006 Sign In and Sign Out
很简单 直接AC #includeint main() { int n,i,sum = 0; int floor[105]; scanf("%d",&n); floor[0] = 0; for(i = 1; i <= n; i++) { scanf("%d",&floor[i]); if(floor[i] > floor[i-1]) {原创 2012-11-21 10:57:37 · 484 阅读 · 0 评论 -
hdu 1215 七夕节
解题方法:用a[ n ] 表示n的另一半的编号。初始化a[i]为1。a[ n ]为n的所有小于n的因子的和。从2开始,2的每个倍数的a[ ] 都加上2,如a[4]+2 ,a[6]+2 , a[8]+2 .....从3开始,3的每个倍数的a[ ] 都加上3,如a[6]+3 ,a[9]+3 , a[12]+3 .......从n/2开始,n/2的每个倍数的a[ ] 都加上n/2,如原创 2013-02-15 21:19:36 · 520 阅读 · 0 评论 -
pat 1035 Password
估计是pat里最水的水题了,只要将对应的字母更换即可。AC代码://1035 15:50 - 16:16#include#includeconst int MAXN=1005;struct account{ char name[14]; char pass[14]; int mod;}a[MAXN];int main(){ int n,i原创 2013-03-06 16:12:02 · 891 阅读 · 0 评论 -
pat 1031 Hello World for U
简单摸拟题,找出最大的n1即可。AC代码:简单模拟 //1031 0:10-0:37#include#includeint main(){ int n1,n2; char str[100]; int i,j,k; scanf("%s",str); int len=strlen(str);/* n1=len/3;*/原创 2013-03-06 09:51:35 · 1144 阅读 · 0 评论 -
pat 1037 Magic Coupon
简单题,先将两数列从小到大排序,再遍历个数少的数列,使得短数列:[----] [++++]对 应:| | | |长数列:[---------][++++++++]负数与长数列的头部相乘,正数与长数列的尾部相乘。AC代码://1037 17:57-18:59#include#include原创 2013-03-06 19:04:57 · 1109 阅读 · 0 评论 -
pat 1017 Queueing at Bank(23分)
实质上是一个有截止时间的多任务调度问题,多个窗口,多个顾客,一个等待队列,截止时间为17点,算平均等待时间。思路是进行模拟,以i来模拟时间一秒一秒,每一秒都遍历所有窗口,若有窗口空闲且有顾客在等待,就服务。差一个点没过,不知是何种情况。需要考虑的情况有:1. 全部都在17点以后到,这样结果为0.02.一个窗口服务完后,再遇到顾客,得服务3.若顾客17点前到,但17点前无法得到服务,该顾原创 2013-02-28 14:42:54 · 1227 阅读 · 1 评论 -
pat 1051 pop sequence
这题对于自己,意义不小,编程能力还是如此之弱!sigh! 用cur标记入栈序列的最大值,逐个扫描出栈序列x,当x与当前栈顶元素不一致(大于或小于)时就将cur++入栈(即使是x大于栈顶元素也将cur++入栈,它必将超过栈容量)。当x与当前栈顶元素一致时,将栈顶元素出栈即可。若栈内元素超过栈容量,则不合法。AC代码:#include#includeusing namespace s原创 2013-05-24 10:51:27 · 998 阅读 · 0 评论 -
pat 1054 The Dominant Color
求数组中出现次数超过一半的数字,排序再取中位数太慢,hash表记录出现次数,空间复杂度太高,从另一个角度来看,出现次数超过一半的数字,其出现次数比其它所有数出现之和还多,每次从数组中除去两个不同的数字,直到最后,剩下的肯定是所求。用cad(候选)表示所求的数,nTime为它出现的次数。依次遍历数组,若a[i]和cad不同则nTime--; 若相同则nTime++; 若nTime为0, 则取下原创 2013-05-24 16:20:53 · 1840 阅读 · 3 评论