2009-06-17
MSRA实习 Check Out
栏目:工作杂记
32,787 Views
今天是最后一个工作日了,IP留念
貌似这三月长了不到10斤,酸奶真是赞呀,每天早上来了都当早饭吃,希望没有三聚氰胺,其实每天都差不多到了11点才来。。。。
马上快毕业了,我是班是最后一个回学校的,大家都在等我吃饭~
马上就能和老婆在一起了,迫不及待了。
2009-06-17
栏目:工作杂记
32,787 Views
今天是最后一个工作日了,IP留念
貌似这三月长了不到10斤,酸奶真是赞呀,每天早上来了都当早饭吃,希望没有三聚氰胺,其实每天都差不多到了11点才来。。。。
马上快毕业了,我是班是最后一个回学校的,大家都在等我吃饭~
马上就能和老婆在一起了,迫不及待了。
2009-06-04
栏目:比赛历程
27,425 Views
有道初赛分成24个Group,我在第19个,题目都非常简单
250分的题目是求从A到B之间有多少个数恰好可以被数组divisors中的K个数整除,只要简单的枚举一下就可以
关键代码如下:
int findLargest(vector <int> d, int K, int A, int B)
{
for(int i=B; i>=A; –i)
{
int k=0;
for(int j=0;j<d.size();++j)
if(i%d[j] == 0)k++;
if(k==K)return i;
}
return -1;
}
500分的题目描述:
双倍超立方数是指一个正整数可以正好被拆分为两种不同的a^3+b^3的方式,其中a,b均为整数且0<a<=b。对于任何一个指定的 int n, 返回所有的小于等于n的双倍超立方数的个数。
题目也比较简单,枚举a,b,用map记录某个整数能拆分的方式数,最后统计一下能拆分成两种的个数即可,代码如下:
map <int, int> dict;
map <int, int>::iterator it;
int count(int n)
{
int res=0;
dict.clear();
for(int i=1;i<1010;++i)
{
for(int j=i;j<1010;++j)
{
if(i*i*i+j*j*j <= n)
dict[i*i*i+j*j*j]++;
}
}
for(it=dict.begin();it!=dict.end();++it)
if(it->second==2)res++;
return res;
}
最后提交代码后分别得了244和440分,第二题写的慢了,总分684.36,system test后Group内排第2,眼观了一下整体排名应该在90多名,进决赛是没有什么希望了!