比赛时的教训


Update On 2016/8/10
1.不看数据范围就开数组。
2.死磕一道题不对拍。
3.i和j写反。
4.下标加减的时候数组越界。
代价是noip模拟赛掉200分QAQ


Update On 2016/08/11

5.逻辑混乱的时候去写程序。
6.对拍的bat写错/暴力写错/数据生成器写错。

代价是noip模拟赛掉100分QAQ


Update On 2016/8/12
因为打CF的时候自己Trie树的空间算错了。
这次rating应该得掉100吧。
我们来明确下一些东西的空间大小。
100W int => 4M
100W LL => 8M
所以给定64M的话,我们可以开1.5kW的int。
所以给定128M的话,我们可以开3kW的int。
所以给定256M的话,我们可以开的6kWint。
其实这个背下来就还好的吧。
由于计算/开错数据范围导致的数组开小是绝对不可饶恕的。
由于计算/开错数据范围导致的数组开小是绝对不可饶恕的。
由于计算/开错数据范围导致的数组开小是绝对不可饶恕的。


Update On 2016/8/14
代码能力变差了……
7.dfs版的spfa多次调用判断负环忘记清空vis数组。


Update On 2016/8/16
果然代码能力变差了……
8.并查集和带权并查集的区别:

int find(int x){return f[x] == x ? x : f[x] = find(f[x]);}
int WtFind(int x)
{
    if(f[x] == x)return x;
    int tmp = f[x];
    f[x] = WtFind(f[x]);
    v[x] = Calc(v[tmp],tmp);
    return f[x];
}

Upd on 2016/11/12
数组又不看范围就开*2
Upd on 2016/11/14
写错文件名*1
哈希表一直写的是错的*1

typedef long long LL;
struct Node
{
    const int N = 1007;
    int cur,head[N],nxt[100005];LL key[100005],cnt[100005];
    void ins(LL x)
    {
        LL val = x;
        x %= N;if(x < 0)x += N;
        for(int i = head[x];i;i = nxt[i])
            if(key[i] == val){cnt[i] ++;return;}
        key[++ cur] = val;cnt[cur] = 1;
        nxt[cur] = head[x];
        head[x] = cur;
    }
    int Qry(LL x)
    {
        LL val = x;
        x %= N;if(x < 0)x += N;
        for(int i = head[x];i;i = nxt[i])
            if(key[i] == val)return cnt[i];
        return 0;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值