Liny_@NotePad

沉迷ACG中

选择结构练习

1、从键盘输入一字符,判断该字符是小写字母、大写字母、数字还是其它字符。若输入为小写字母,则显示“You Input a Lowercase Letter!”;若输入为大写字母,则显示“You Input a Uppercase Letter!”;若输入为数字,则显示“You Input a Digit!”;若输入为其它字符,则显示“You Input Other Letter!”。

  1. DATAS SEGMENT
  2.     INFOR_I DB 'please input a char:$'
  3.     INFOR_L DB 0AH,0DH,'You Input a Lowercase Letter!$'
  4.     INFOR_U DB 0AH,0DH,'You Input a Uppercase Letter!$'
  5.     INFOR_N DB 0AH,0DH,'You Input a Digit!$'
  6.     INFOR_O DB 0AH,0DH,'You Input Other Letter!$' 
  7. DATAS ENDS
  8.  
  9. CODES SEGMENT
  10.     ASSUME CS:CODES,DS:DATAS
  11. START:
  12.     MOV AX,DATAS
  13.     MOV DS,AX
  14.    
  15.     MOV DX,OFFSET INFOR_I
  16.     MOV AH,9H
  17.     INT 21H
  18.    
  19.     MOV AH,1
  20.     INT 21H
  21.    
  22.     CMP AL,'0'
  23.     JL INPUT_OTHER
  24.    
  25.     CMP AL,'9'
  26.     JNG INPUT_NUMBER
  27.    
  28.     CMP AL,'A'
  29.     JL INPUT_OTHER
  30.    
  31.     CMP AL,'Z'
  32.     JNG INPUT_UPPER
  33.    
  34.     CMP AL,'a'
  35.     JL INPUT_OTHER
  36.    
  37.     CMP AL,'z'
  38.     JNG INPUT_LOWER
  39.     JG INPUT_OTHER
  40.    
  41. INPUT_LOWER:
  42.         MOV DX,OFFSET INFOR_L
  43.     JMP RESULT
  44.        
  45. INPUT_UPPER:
  46.         MOV DX,OFFSET INFOR_U
  47.     JMP RESULT
  48.        
  49. INPUT_NUMBER:
  50.         MOV DX,OFFSET INFOR_N
  51.     JMP RESULT
  52.            
  53. INPUT_OTHER:
  54.         MOV DX,OFFSET INFOR_O
  55.     JMP RESULT
  56.        
  57. RESULT:
  58.     MOV AH,9H
  59.     INT 21H
  60.  
  61.     MOV AH,4CH
  62.     INT 21H
  63. CODES ENDS
  64.     END START

 

2、在屏幕上显示“Are you really want to exit?”,然后从键盘输入一字符,若输入“Y”或“y”,则显示“Thank you for your using!”;若输入“N”或“n”,则显示“Let’s continue!”;若输入其它字符,则显示“You press an error key!”后程序结束。
  1. DATAS SEGMENT
  2.     INFOR DB 'Are you really want to exit?$'
  3.     INFOR_Y DB 0AH,0DH,'Thank you for your using!$'
  4.     INFOR_N DB 0AH,0DH,'Lets continue!$'
  5.     INFOR_O DB 0AH,0DH,'You press an error key!$'
  6. DATAS ENDS
  7.  
  8. CODES SEGMENT
  9.     ASSUME CS:CODES,DS:DATAS
  10. START:
  11.     MOV AX,DATAS
  12.     MOV DS,AX
  13.    
  14.     MOV DX,OFFSET INFOR
  15.     MOV AH,09H
  16.     INT 21H
  17.    
  18.     MOV AH,01H
  19.     INT 21H
  20.    
  21.     AND AL,11011111B
  22.    
  23.     CMP AL,01011001B
  24.     JE INPUT_Y
  25.    
  26.         CMP AL,01001110B
  27.         JE INPUT_N
  28.         
  29.     JMP INPUT_O
  30.    
  31. INPUT_Y:
  32.         MOV DX,OFFSET INFOR_Y
  33.         JMP RESULT
  34.    
  35. INPUT_N:
  36.         MOV DX,OFFSET INFOR_N
  37.         JMP RESULT
  38.        
  39. INPUT_O:
  40.         MOV DX,OFFSET INFOR_O
  41.             
  42. RESULT:
  43.         MOV AH,09H
  44.         INT 21H
  45.    
  46.     MOV AH,4CH
  47.     INT 21H
  48. CODES ENDS
  49.     END START

他们写了,那我也写……成都总结

rt。。
首先是热身赛,没用过SunStudio,第一题敲完后发现不能执行囧。还把工作人员叫来了 = =
后来发现工程建错了 Orz 顺利1Y。
第二题敲SPFA时漏了句front++,结果死循环 netbeans直接把它跳过,
我们以为是输入出错 看了半天看不出来 最后cjy上去自己敲了。后面才查出来,结果WA Orz。
第三题不会做……

正式赛,
一开始看红球和紫球顺眼,立刻翻B,看图觉得囧,就没继续看……
不小心翻到C,发现字少,图完感觉是DP,便讲给wekooo,然后我继续找可做题。
看A,第一遍sample不是很清楚,cjy叫我不要老看一题,先看看有没有比较好理解的,
于是我就看到E,题意比较清楚,任删一个矩形使剩下矩形面积交集最小,交给cjy了。
这时wekooo对C没有头绪,问我H是什么意思,又去看H……题意大概理解,可是不会走样例。
cjy对E也没想法,场内这时只有E和J两个气球,我便和他一起看J,wekooo继续想H。
J搞清楚之后他开始敲。我再给wekooo讲了下H的意思,貌似不好做……因为只有两种气球,便让他想E或J。
接着我继续读题,A看完了,除了暴力外没别的想法。
B看了,觉得应该是考数据结构的,由于没有人过,便不敢问cjy。
G没想法。
wekooo觉得E可以暴力,cjy敲完J后,马上换他上E。
以防万一打印了J的代码,一会结果出来 1Y。
立刻给cjy讲C,他有信心做出来,我就继续看其他题。
这时看了I,觉得比较繁琐,中间那个求搭乘巴士路线的没想清楚怎么写,决定等机器空时才敲。
cjy想C的时候,wekooo提交了,返回1Y。两人换机,CJY先打他想的DP。
我和wekooo讨论了下A,只想到暴力加点点优化。便等着cjy。
我当时想的用标记,因为之前用stl感觉vector那些直接删非常慢。
只打算用while剩下个数,每次把符合条件的全标记掉。
最坏的情况是一次只有一个符合条件。O(n^2)不知道会不会TLE。
wekooo觉得不够,把m分为1、2、3三种情况。用二分。
但是二分的话就不能一次大片删了。
对用二分的理由不是很了解,cjy下机时我就蛮上去敲。
之前听到旁边有人说暴力,他有A的气球,便很有信心。
当时C返回WA,cjy便继续想,wekooo帮他一起想。
后来改了两个小错误,过了。
由于我们对A太有信心,cjy便去想G。
过了样例,貌似wekooo还有更优化的方案。
中间cjy的G想法上出了点问题,便决定一起搞A。
后来默默地改得没二分了。
便让他接我的代码继续,还剩半小时时交了,TLE。
于是写成大片删,m=1时则继续二分。
再交 还是TLE。cjy觉得有些问题,要直接删。
可时间已不够他重新写,只好在原来的基础上继续优化。
到最后还是TLE。
赛后问了问隔壁的,他们也是,不过是用vector直接删除的 囧rz。
就这样再次与银擦身而过……我是罪人 T_T
封榜前排名43,不知道之后排名如何。
感觉铜没戏了……很紧张
晚上颁奖结果出来 - - 还是排在40+,铜的中间。
原来两题也有铜 Orz。
很可惜……
也结束了我的icpc历程……

Til the Cows Come Home

pku 2387:http://acm.pku.edu.cn/JudgeOnline/problem?id=2387

从n地走到1地,求最小距离。典型的单源最短路径,直接套模板……

Bad Cowtractors

pku 2377:http://acm.pku.edu.cn/JudgeOnline/problem?id=2377

很基础的一道题,输入N和M,表示有N个结点和M条路径,求这个图的最大生成树。

题目意思很明显了,但是注意有重边的情况,此时应该输出权较大的结果,当不能连通时输出-1。

Agri-Net

pku 1258:http://acm.pku.edu.cn/JudgeOnline/problem?id=1258

最小生成树。prim或kruskal。由于prim比较好敲……幸好有做这题不然就忘了准备模板了囧

Java vs C++

PKU 3157:http://acm.pku.edu.cn/JudgeOnline/problem?id=3157

 简单模拟,主要是注意error的几个错误格式。

Don't Get Rooked

PKU 1315:http://acm.pku.edu.cn/JudgeOnline/problem?id=1315

 由于n<=4,直接暴力回溯即可 = =。

第一个asm……好囧

这真是一门可怕的学科 TAT

编写程序实现:从键盘输入0~9中任意一个自然数,将其平方值在屏幕上显示出来(要求使用查表法)。