2010 ccsu 第一次新手赛
来源:互联网 发布:软件游戏编程培训班 编辑:程序博客网 时间:2024/05/15 00:36
我们学校终于有 oj 啦!这次的比赛的题目由08级的队员出的。难度,嗯~,不是很难,当时是想让一般的人能做出个什么3、4道题,好一点的话,就应该能过7、8题吧,开始还以为09的OIer能够ak。但是这次的结果不是很理想,但是据了解,很多人知道题目的解法是这么回事,但就是写不出程序,这。。,语法没学好。总的来说,09级的选手们没发挥本能的水平吧。
下面说说这次比赛的题目吧:
A. (a^b)%c 。 解法:二分。 首先一条性质: (a*b)%c=((a%c)*(b%c))%c 然后,a^b: 当b为奇数时,可以分解为a^((b-1)/2)*a^((b-1)/2)*a; 当b为偶数时,可以分解为a^b/2*a^b/2。 于是可以看到a^b的形式可以慢慢地分解下去,于是按照这个原理就可以解决这个问题。 先想想如何实现这个问题,下面附一份关键代码以供参考:
while(b) //b为指数
{
if(b&1) //b为奇数
ans=ans*a%c; //ans代表答案,初始值为1
b>>=1; //b/2;
a=a*a%c; //二分的关键!!!
}
B.方程求解。 解法:二分。 这道题本意是想考高数的知识,在大一上学期高数书的第三章第八节中就提到这个问题,有什么不懂的,建议去看高数书,学会这种算法很有用的,以后在很多问题中都会遇到。(注意精度,建议输出格式:prinf("%.3lf");)。
C.骨牌铺方格。 解法:递推。 相信很多人看题目中那个图,就会有点想法,是的,就是一个递推关系:f(x)=f(x)+f(x-1); 注意这题用递归的话就会超时,因为重复算了很多。于是这题就可以解决了。
D.黑色星期五。 解法:模拟。 简单的模拟,先把这一年,这个月之前的天数算出来,然后再与7对应,递增相应的星期几。贴一段关键代码吧:
for(int i=Y;i<=year;++i)
for(int j=1;j<=12;++j)
{
Count[(ans+13)%7]++; //答案就保存在这里
ans+=Mdays[j]; //增加天数
if((j==2) && (((i%4==0)&&(i%100!=0))||(i%400==0)))
++ans; //闰年的二月多一天
}
E.矩阵乘法。解法:直接算。刚学过线性代数,应该知道怎么算的,三重循环就解决了。也贴一段代码吧:
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
{
int temp=0;
for(int k=1;k<=m;++k)
temp+=m1[i][k]*m2[k][j];
ans[i][j]=temp;
}
F.空心三角形。解法:模拟。这道题是最简单之一的题目,直接根据题目的情况输出。为简单起见,分为三部分:第一部分,输出第一行,把算一下第一行前面有几个空格,输出空格后就输出一个相应的字母,注意这一行后面就不要再输出空格了,发现很多同学多数出了空格导致一直“PE” 显示错误,后面的行也是一样。第二部分,输出前面的空格,输出一个字符,输出中间的空格,再输出最后一个字符。第三部分,输出最后一行字符。
G.三种不同颜色的球。解法:a+c+1。这次比赛最简单的题,还有些同学,没注意b等于0的情况而一直错。
H.神秘的功能。 解法:递推。这题还不需要推,题目已经给出了递推公式,直接根据题意去算,注意题目中说了:规定p mod q得到的整数r满足0 <= r <= q −1。这里要注意,要不可能会得到负值,建议p mod q 得到r 以后,再r=(r+q)%q,这样就可以避免出错。这题的公式都出来了,就不贴代码了。
I.杨辉三角。 解法:也是根据杨辉三角的性质去算。不难。
这次比赛的解题报告就写这些了,有什么问题可以问。这次大家可以说是普遍失误,多多做题,多多刷题,期待下次爆发!!!
- 2010 ccsu 第一次新手赛
- 新手第一次
- 新手第一次注册
- 新手第一次来==
- 新手菜鸟第一次写博客
- ccsu 数星星
- ccsu 1546 数字游戏
- 新手第一次上高速一串疑问
- 新手上路之第一次自驾游
- 第一次接触javaweb的新手认识
- JavaWeb项目(新手,第一次写博客)
- ccsu 1435 A和B
- 非常适合第一次接触Web Service的新手
- 新手第一次建站,在这里做个备忘录
- java简单程序学习(新手:第一次接触java)
- <不吐不快> 新手的第一次Hadoop2.6.3分布式安装
- book_乱糟糟的第一次_新手小y
- iOS App中第一次运行添加半透明新手指引
- 第三次世界大战发生的可能性
- windows平台上编写动态链接库应该注意的事情
- declare a class uncopyable
- windows平台上的调试
- Java
- 2010 ccsu 第一次新手赛
- [linux]grub笔记
- 学习asp.net3.5心得体会1
- 浙江大学郑强教授的激情演讲(转)
- 怎样挑选适合项目的数据库
- 重新分发应用程序并将其绑定到特定库
- [linux]dnotify 内核中监视文件系统上一个目录中的情况
- 8 个长寿的免费网络硬盘
- VMware中用NAT方式实现FreeBsd/Linux上网