比赛时的教训

来源:互联网 发布:穿越火线一键领枪软件 编辑:程序博客网 时间:2024/05/16 10:39

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 0
原创粉丝点击