昨天进行了模拟赛,很不爽,只有120分。想当然让我措失了80分,数学知识不能合理利用让我又失去了80分。懒惰也让我失去了一些分数。
从现在开始,我总结一下做题的情况和问题。将发布各题的解题报告。

第一题:不会,骗分
骗分也是一门艺术,不过只骗了20分。
我的骗分程序:(反正不会写,索性用 C++ 而不是 Pascal 写了一个骗分程序新鲜一下。

 
/*  
 Cheat By Ceeji XD 
*/ 
#include <cstdio> 
using namespace std; 
int n,q; 
int main() 
{ 
    freopen("count.in","r",stdin); 
    freopen("count.out","w",stdout); 

    scanf("%d",&n); 
    scanf("%d",&q); 

    if (n==1) { printf("%d\r\n",(1 % q));  } 
    if (n==2) { printf("%d\r\n",(1 % q));  } 
    if (n==3) { printf("%d\r\n",(2 % q));  } 
    if (n==4) { printf("%d\r\n",(3 % q));  } 
    if (n==5) { printf("%d\r\n",(8 % q));  } 
    if (n==6) { printf("%d\r\n",(20 % q)); } 
    if (n>6) { printf("%d\r\n",5); } 

    fclose(stdin); 
    fclose(stdout); 
    return 0; 
} 

事后,我请教了我们班的全校第一,他用数学方法很随意的写出了这个题目。虽然我也知道是排列组合问题,但是却没有能够写出来。我还没来得及问他是怎么写的。

第二题:搜索
考试的时候根据数据范围(n<=22)猜测应该是搜索。但显然搜索的优化没有做到最好,赛后得知应该使用位运算进行加速。
详见即将发表的解题报告。

第三题:不会,骗分
非常惨的是,没有骗得半分

第四题:本应该是送分题,但却白白失去。
简单的数学 + 二分法求解。我想当然的认为圆台的体积可以用它的中间面的面积乘以高去计算,但只对了两个点。老老实实的用求差法去计算,立即AC。(其实还出了点小问题,数据本身没有AC,把数据改了以后才AC。……)