TopBoy

栏目:工作杂记      707 Views

今天是最后一个工作日了,IP留念

貌似这三月长了不到10斤,酸奶真是赞呀,每天早上来了都当早饭吃,希望没有三聚氰胺,其实每天都差不多到了11点才来。。。。

马上快毕业了,我是班是最后一个回学校的,大家都在等我吃饭~

马上就能和老婆在一起了,迫不及待了。

栏目:比赛历程      588 Views

第一场152名295分,第二场105名148分

前两年基本都是压线进复赛,今年成绩稍微好一些

栏目:比赛历程      509 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多名,进决赛是没有什么希望了!