foodszhu
编程之美2013全国挑战赛
展开Biu

本帖最后由 foodszhu 于 2013-4-2 20:17 编辑

转自

http://programming2013.cstnet.cn/

大赛详情

"编程之美全国挑战赛"是微软亚太研发集团面向全国高校开展的大型编程比赛。2012年,微软亚太研发集团成功举办了以“大数据的可视化”为主题的挑战赛。2013年,我们邀请你“漫步云端体验编程之美”:

在这里,你可以自由交流编程心得,角逐算法技艺,领略编程之美
在这里,你可以点击视频,浏览最新潮流技术;也可打开资料库,获取大量免费学习资源
在这里,你将有机会来到微软,与资深研究员和工程师面对面交流,与各路精英华山论"键"云技术
2013年,大赛分资格赛,初赛,复赛和决赛四部分。资格赛,初赛和复赛在网络比赛平台上举行,均为算法题。决赛在微软亚太研发集团总部举行,决赛将涉及微软公有云平台Windows Azure。

参赛人选

编程之美全国挑战赛以个人形式参赛。参赛者必须为中国籍的高等院校学生,且报名以及比赛时未在微软公司实习。

奖项设置

一等奖1名赴美国参观学习
二等奖2名奖金5000元
三等奖3名奖金3000元
全国15强免试录取为微软亚太研发集团实习生
全国60强获得一年免费的IEEE学生会员资格,到微软亚太研发集团总部参加决赛
初赛前1000名 即可进入复赛,并获得2013微软编程之美大赛精美纪念T恤一件
复赛前20名2014年应届毕业生可赴微软亚太研发集团参加校园招聘直通车活动
时间安排 [td]
时间环节比赛内容
即日起至4月5日报名在线注册
4月6日至8日资格赛参赛者于72小时内答题,共3道算法题。答对任意一道即可获得进入初赛资格。
4月13日、14日

每天14:00-16:00

初赛初赛两天分别进行一场,每场时长2个小时,共3道算法题。以最短时间内给出最多正确答案者胜出。每场决出约500人,共决出1000人进入复赛。参加初赛第一场的ID不可以参加初赛第二场。
4月20日

14:00-17:00

复赛比赛时长3小时,共4道算法题,以最短时间内给出最多正确答案者胜出。此次比赛决出约60人参加决赛。
5月决赛前60强在微软亚太研发集团总部参加为期三天的全国总决赛,同微软“编程之美”团队华山论剑云技术。决赛将涉及微软最新的云平台Windows Azure。具体日期、比赛内容和形式将在5月上旬公布细则。
-----------------------------------------------------------------------------------------------------------

各位同学们有木有心动啊。。。很不错的机会啊。。。而且参加初赛也不费时间。。。。如果有幸得奖真的非常棒啊。。。
不过很可惜只对高校学生开放。。。乃们工作了的@Mr_Alex @Whisper1166 不如给大家发题解吧

[查看全文]
_Nozomi
【一起来做题】HDOJ2011-多项式求和
展开Biu

我们一起来做一些简单题吧,多做分析,多运用数学能让算法变简单很多。

顺便也能和大家一起学习,好的编程习惯,提升算法效率,简化代码等等。先来上问题:

Problem Description

多项式的描述如下:

1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...

现在请你求出该多项式的前n项的和。

Input

输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。

Output

对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。

Sample Input

2

1 2

Sample Output

1.00

0.50


显然用迭代可以很方便的解决问题,初始sum=0, i从1开始到n,如果1是奇数,sum += 1.0 / i; 否则 sum -= 1.0 / i;

当然,迭代是可以换成递归的。这道题的递归的定义为:

┌ 0 (n = 0)

f(n)┼ f(n-1)+1/n (n为奇数)

└ f(n-1)-1/n (n为偶数)

当然,你也可以顺着递归,这就随你的喜好了,呵呵。

┌ 0 (i > n)

f(i)┼ f(n+1)+1/n (n为奇数)

└ f(n+1)-1/n (n为偶数)

这种简单题,初学者就可以用它来练练手,熟悉一下递归的写法(但对于这道题来说,递归的效率比迭代差):

这里示范第一种递推公式:

首先也定义一个函数F(n):double f(int n){}

根据公式写出条件判断:

[mw_shl_code=c,true]double f(int n)

{

if (n == 0)

return 0;

else if (n % 2 == 1)

return f(n - 1) + 1.0 / n;

else

return f(n - 1) - 1.0 / n;

}[/mw_shl_code]

最好可以简化代码,使代码更简洁紧凑:

[mw_shl_code=c,true]double f(int n)

{

return n ? f(n - 1) + ((n & 1) ? 1.0 : -1.0) / n : 0;

}[/mw_shl_code]

另一种递推公式也同样能用这样的方法写出代码。要不各位来试试?祝好运(*^__^*)

该贴已经同步到 Whisper1166的微博

[查看全文]
懒之圣帝
如何传递结构数组?
展开Biu

[mw_shl_code=cpp,true]struct Battler

{

int hp;

};

Battler Actor[2] =

{

{12},

{14},

};

void show(const Battler * obj[])

{

for(int i = 0; i < 1; i++)

{

std::cout << obj->hp << std::endl;

}

}

//调用

Show(&Actor);[/mw_shl_code]

然后出错了:

不能将‘void Show(const Battler**)’的实参‘1’从‘Battler (*)[8]’转换到‘const Battler**’

由于C++ Primer中没有讲如何传递结构数组,于是球解答。

编译器:GCC

[查看全文]
weeken2013
错错错!!求改错~
展开Biu

#include<stdio.h>

#define MAXN 50010;

#define MAXK 5;

#define MAXM 10;

int n,m,k;

struct Point

{

int p[MAXK];

};

void input(struct Point* s){

int i;

for(i= 0;i<k;++i){

scanf("%d",&(s->p));

}

}

void main(){

struct Point *point;

int i;

while(~scanf("%d%d",&n,&k)){

for(i=0;i<n;++i){

input(point);

}

}

}

有请大神出场

[查看全文]
weeken2013
关于结构体的那些事
展开Biu

下面代码是用C++编的啊,但小白我要用C实现啊,C的结构体内木有函数啊,我能在结构体内定义个指针指向结构体外的函数么??

using namespace std;

const int MAXN = 50010;

const int MAXK = 5;

const int MAXM = 10;

int n, m, k;

struct Point

{

int p[MAXK];

inline void input()

{

for(int i=0;i<k;++i)

{

scanf("%d", &p *本站禁止HTML标签噢* );

}

}

inline void output() const

{

for(int i=0;i<k;++i)

{

if(i)

{

printf(" ");

}

printf("%d", p *本站禁止HTML标签噢* );

}

printf("\n");

}

}point[MAXN], searchPoint;

[查看全文]
汝欠咱的一生
17的倍数问题。求教!
展开Biu

Q:

定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。

Input:

输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(n可能很大),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。

Output:

对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。

Sample Input:

34

201

2098765413

1717171717171717171717171717171717171717171717171718

0

Sample Output:10

1

0

最开始我用long long。发现超过一定的位数就不行。然后用char,按照定理循环去掉最后一位。检查到还剩6位的时候就转换为int型。

可还是有错。求大神指教,有code最好。我想看看到底哪儿错了。

[查看全文]
懒之圣帝
好吧,GCC怎么用 = = 。。。
展开Biu

按照百度出来的结果进行编译,但是总是提示找不到文件 = =。。。

version:gcc-4.7.2-8.fc18.i686

OS: Fedora 18 LXDE

[查看全文]
翡翠墨水
C 语言跪,求解决方法
展开Biu

本帖最后由 翡翠墨水 于 2013-3-20 18:37 编辑

void translateNumber(int * optionStats, char * phoneNumber)

{

}

收到的其中的一个

是使用Char 和 getstring 来 检查输入的字符串,是字母的立刻转换为数字

指针和get string 不熟悉,求解决方式……

比如输入

1-800-COL-LECT
就能得到

1-800-265-5328

2=ABC, 3=DEF, 4=GHI, 5=JKL, 6=MNO, 7=PQRS, 8=TUV, 9=WXYZ

[查看全文]