Chinaunix首页 | 论坛 | 博客
  • 博客访问: 317416
  • 博文数量: 93
  • 博客积分: 2515
  • 博客等级: 少校
  • 技术积分: 1025
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-18 22:51
文章分类

全部博文(93)

文章存档

2010年(2)

2009年(26)

2008年(65)

我的朋友

分类:

2008-09-16 12:45:23

Timus Top Coders: First Challenge题目总结

Timus Top Coders: First Challenge题目总结:
A: 一个N*N的方阵,里面填0到100的数,已知每行的数的和分别为SR1,SR2...SRn,每列的数的和为SC1,SC2...SCn,求出一个符合条件的方阵。
我是用网络流做的,想了很久都想不出简单的构造方法。构造一个n*n的二分图,弧的容量都为100,加一个源点和一个汇点。源点出发的n条弧的容量设为SRi,流入汇点的弧的容量为SCi,求最大流。

B: 三维空间中有一些点,求同一条直线能穿过的最多点数。
二维的是老题,改一下就可以做三维。

C: 给定字符串S和T,对S做cycle shift,问能否得到T。
在串SS中用KMP找T是否出现即可。

D: 一辆有最大容量为m的bus,从车站1开到N,已知每位乘客的上车站Si和下车站Fi(Si< Fi),求最多可以运送多少位乘客。
经典的贪心。把乘客按Fi从小到大排序,Fi相同的则Si大的在前。按序扫描这些乘客判断能其否上车。对于当前乘客u,在已上车的乘客集合P中找到Fv最大的乘客v,且Fv<=Su,如果v存在则把v从P中去掉,此时如果|P|< m则u就能上车,并把u加入P。处理P可以用线段树。

E: 在一个N维,每维大小为S的棋盘中移动皇后,皇后可以按车的走法或象的走法。车的走法是改变任一维的值,象的走法是每一维的值都改变相同的绝对值。问2步之后皇后能走到的不同位置的数目。
这里N<=5,S<=100,每一步粗略估计最多不超过3700种走法,可以用BFS+Hash直接做。这题的内存和时间都比较紧,我是用1 个char和1个integer来表示状态才过的。用1个long long就超内存,用5个char就超时。

F: 在平面上给出任意4点(可能位置相同),求一个矩形使这4点都在矩形的边上。
不会做,你教我...

G: 简单题,扫描一次即可。

H: 已知A,B,C且A,B都是C-1的约数,求X,Y,Z满足X^A+Y^B=Z^C
设pA=qB=C-1,则令X=2^p,Y=2^q,Z=2即可

I: 在平面上给定一些圆的位置,问这些圆的圆周把平面分成多少个区域。
这题和ZOJ2589是一样的,但精度要求更高些。主要思路是用欧拉公式,注意还要求有多少个连通块。先把两两圆的交点求出,同时用hash保存点会比较方便。这题中的圆可能重合,要预处理一下。

J: 已知正整数A,B,N,求最大的不大于N的整数M满足AX+BY=M且X,Y都为非负整数
我们知道X,Y都为非负整数且(A,B)=1时,AX+BY可以表示大于等于AB-A-B+1的所有整数。所以当N不能表示成AX+BY的形式时,必有 AB-A-B+1>N => (A-1)(B-1)>N-2,这时可以直接枚举A,B中较大的数的系数来求,复杂度是O(sqrt(N))的。(A,B)>1时容易转化成 (A,B)=1的情况。
阅读(870) | 评论(0) | 转发(0) |
0

上一篇:凸包问题

下一篇:搜索 题

给主人留下些什么吧!~~