The 9th SWJTU ACM Qualification Tutorial

while(scanf("%d%d",&a,&b)!=EOF) printf("%d\n",a+b);

B

特判: up=0时,无解。

其他: up*x-down*y=num 有解的条件是num被gcd(up,down)整除

C

起始点为0点,标记后放入队列。每次从队列首部读取可以走到的点的值为now。 走到now时,若now+up<=top,可走到now+up,为标记则标记入队;若now-down>0,可走到now-down,为标记则标记入队。若某次now与num相等,即为yes。队空后仍未找到即为no。

D

(1) 每输入一个学号,与之前的所有已输入学号比较。若此为新学号,则计数器+1。

(2) hash搜索

E

将每个数用string类读入,快排数的方式为:cmp函数自定义为a+b<b+a。

F

通过容斥原理可以写出A(i)==B(j)时,i与j的对应关系。二分查找n,找到对应的最小ans满足i与j的映射关系。

G

2013-n

H

页数总和除以每天看的面数,向上取整。

I

方法一: 用strcmp函数将输入书名和拥有的书名全部比较。

方法一: 将每门课hash为一个整数,输入待查找的书名后,求出其hash,在拥有的书的hash中查找。

方法二: 将拥有的书构造字典树,每次询问直接在字典树上搜索。

J

将数字和频数用pair<int,int>型捆绑起来,根据"首要频数优先,其次数字小的优先"的原则,自定义cmp函数。将频数非零的统计即为总数。

posted @ 2013-04-13 20:21  YogyKwan  阅读(237)  评论(0编辑  收藏  举报