day -1

老师说今早开家长会,我开始想今早模拟赛怎么打。
然后好像就是发了五道noip的题,最后又莫名其妙加了一个noip模拟赛。

day 0

本来说7:30起床,起晚了。
然后匆匆吃了点东西就开始打模拟赛。
与以往不同的是,本次比赛竟然使用的是 Lemon。
让我们自己在家评测。std、data之类的直接放我们这里。
然后 2735 就不停给我wx刷屏 T2 std。说这个代码可以骗分。
但是我没用。()
因为我一直很排斥符号题目,所以看到 T1 愣了一下。
“什么?t1就这些乱七八糟的?”
仔细分析了一下,发现就是一个等差数列求积取模。

开干。其实就是 a(a+d)(a+2d)(a+3d)…(a+(n-1)d),每个式子提一个d出来,最后来一个d的n次方。

其实一开始想去阶乘+前缀和,但是这个思路很快被该死的Gamma函数去掉了。为什么?Gamma我知道,分数阶乘,但是我不会。

然后只能继续将就了,就这样卡了十分钟。

然后?

哦!乘法逆元!

阶乘和乘法逆元提前预处理了一下,然后直接进去算式子。

然后就很快把代码写出来了。这个时候刚刚8点半,刚刚用了半小时。

调试一下:哦,我用了 unsigned long long,但是 printf("%ulld"),笑死我了,我是什么【】啊。

调试一下:哦,我模多了。

然后就一直在调bug…………………..

忘了说了,乘法逆元中途忘记怎么写了,手推了二十分钟。

调bug+推逆元=1个小时

最后半小时把代码写出来了,大样例炸了,发现是预处理预处理多了,果断直接预处理 1~mod-1。为什么?mod开始可以由逆元转化为其他的阶乘。然后快速幂炸了,原来是 b>>=1 写成 b<<=1 了。该死。

这个时候已经10点了,两个小时,把代码整理了一下,提交了。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int maxt=1e7+10;
int t, p;
int times[maxt];
int exgcd[maxt];

int Pow(int a, int b){
    int s=1;
    for (; b; b>>=1, a=(ll)a*a%p)
        if (b&1) s=(ll)s*a%p;
    return s;
}

int main(){
    freopen("story.in", "r", stdin);
    freopen("story.out", "w", stdout);
    scanf("%d %d", &t, &p);

    *times=1;
    for (int i=1; i<p; ++i) times[i]=(ll)times[i-1]*i%p;
    exgcd[p-1]=Pow(times[p-1], p-2);
    for (int i=p-1; i; --i) exgcd[i-1]=(ll)exgcd[i]*i%p;
    
    while (t--){
        int a, d, n;
        scanf("%d %d %d", &a, &d, &n);
        if (!d) printf("%d\n", Pow(a, n));
        else{
            a=(ll)a*exgcd[d]%p*times[d-1]%p;
            printf("%d\n", (!a || a+n>p) ? 0 : (ll)times[a+n-1]*exgcd[a-1]%p*Pow(d, n)%p);
        }
    }
    return 0;
}

第二题开题。题目一眼没用,没有被骗。发现了直接枚举字符串里所有 abcdcd 形状的种类输出即可。可惜没有写出 dp,还是太菜了。这个时候是11点。

第三题不会复杂背包,果断输出 Impossible。这个时候是11点25。

第四题线段树一点都不会,口胡了一个假思路,没写。这个时候是11点40。

摸鱼摸了20分钟,发现了VSCode扩展库里面的一些好东西。不得不说我从DEVC++换成VS是个明智的选择。因为我那个DEV是二次开发过的,RedPanda的一个劣质版本,往下滚轮都会出现那种 system("cls") 引起的间歇性刷新屏幕。

预估 [80,100]+0+[1,10]+0=[81,110]

最后是 100+0+9+0=109

总结:不能排斥符号堆砌的数学题。好多这种题都是唬人的,其实50行以内完事。背包、dp 还是大量刷大量刷,线段树不能不学了。

原文地址:http://www.cnblogs.com/kth-element/p/16906012.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性