zoukankan      html  css  js  c++  java
  • 亟待解决的问题

    我大概是啥都不会吧(好吧hello world还是会的)

     另:收集到的小玩意儿<—戳这里  低级错误<—戳这里 USACO囤题计划<—戳这里

    三月份

    3.4.2018

      1.并查集里的“秩”是什么?

      http://hzwer.com/3951.html里有一句话“秩其实有的时候很不好用,维护子树大小比较赞。。。”所以说秩不是子树大小...?网上也没有什么资料,只找到一个贴吧的帖子

    3.6.2018

      1.邻接表和前向星的区别?

      我觉得就不过是一个用链表一个用数组(或是其他结构例如set)实现啊?

      找到的一些东西链式前向星与邻接表对比邻接表与链式前向星

    3.7.2018

      1.luogu3393一道诡异的图论……开O2MLE,不开O2TLE……似乎所有能加的优化都加上了,难道必须要SPFA的吗?堆优化的dijkstra是什么情况……交了20+,调了3个多小时……有一位的题解和我思路差不多但是我就……

    3.13.2018

      1.luogu3864字符串的锅……

        for (int i=1; i<=4617; i++)
        {
            cin >> f[i];
            for (int j=0; j<f[i].size(); j++)
                x[i][j] = cg[f[i][j]-'A'+1];
        }

        这样x[]是空的……

    3.16.2018

      1.luogu1475随笔留档  玄学的题面和玄学的解题

    3.26.2018

      1.二项堆和二叉堆的区别?

      参考文档:

      1.简介 - 二叉堆 & 二项树 & 二项堆 & 斐波那契堆

      2.优先队列三大利器——二项堆、斐波那契堆、Pairing 堆

    3.30.2018

      1.又是一道鬼畜的题目奶牛家谱,这篇是题解。问题在于

        1. 树形dpⅠ的锅在哪里?

        2. 树形dpⅡ中这个f[][]表示前缀和的dp方程还是第一次见到呢。表示只会感性理解


    3.31.2018

      1.luogu2528P2528 [SHOI2001]排序工作量之新任务的dp方程以及思想。Manchery学长提到了一个叫做反序表的东西?

      参考资料: [反序表 DP] 51Nod 1020 逆序排列

    四月份

    4.15.2018

      1.HHHOJ#37 反等差数列 I的分治思想

    4.21.2018

      1.欧拉筛的时间复杂度?网上大多说是线性的,但是紫书上写是O(nloglogn)的?

      ans:好吧筛欧拉函数那个不叫欧拉筛……欧拉筛是用来筛素数的,确保了每一个合数仅被它最小的因数筛过,所以是O(n)的

    五月份

    5.6.2018

      1.HHHOJ#72. 飞  别人的博客(大致题意):https://blog.csdn.net/KGV093/article/details/78170128

    5.7.2018

      1.bzoj1208[HNOI2004]宠物收养所  带旋treapMLE了???  代码:https://paste.ubuntu.com/p/By2ckNMkyf/

        然后好像加了一些奇奇怪怪的特判就过了???(1.delete时候如果root==0退出;2.ans统计时候如果ans<0则ans=0)

      ans:调营业额统计的时候发现了……好像原来是INF开成了2147483647,然后就溢出了?

    5.10.2018

      1.bzoj4520 [Cqoi2016]K远点对里面我有一个想法:如果$n>k$,那么把每个点的最远点加进堆里(应该需要去重),然后第$k$个点对就是全图的第k远点对。那么问题就成为了如何求出二维图中离每个点各自最远的点

    5.23.2018

      1.luoguP4169 [Violet]天使玩偶/SJY摆棋子这个玄学的爆零!https://paste.ubuntu.com/p/yVbFdg4xP9/

      ans:1.rebuild时候要先nth_element再a[mid]=t[mid];

        2.update时候一定要注意mn和mx的更新很容易错!

        3.rebuild时候是tot不是n!

    六月份

    6.23.2018

      1.HHHOJ#21的

     1     for (int i=1; i<=m; i++)
     2     {
     3         // char ch = getchar();
     4         // while (ch!='O'&&ch!='I'&&ch!='?') {
     5         //     if (ch!=' '&&ch!='
    '){
     6         //         printf(""%c"",ch);
     7         //         // return 0;
     8         //     }
     9         //     ch = getchar();
    10         // }
    11         char ch[3];
    12         scanf("%s",ch);
    13         if (ch[0]!='?') scanf("%d",&q[i].x);
    14         else q[i].opt = 2;
    15         if (ch[0]=='I') q[i].opt = 1;
    16         else if (ch[0]=='O') q[i].opt = 0;
    17     }

      如果用getchar()那么会读入读进负号并且读入超时。这个真的是很玄妙了

      ans:垃圾数据出题人的锅,输入数据不合法行数不够

       2.HHHOJ#111. 环游世界【在两个城市i,j之间旅行的代价是|wi–wj|^3 】贪心的正确性?

     1 #include<bits/stdc++.h>
     2 const int maxn = 100035;
     3 
     4 int n,a[maxn];
     5 long long ans;
     6 
     7 long long w(int x, int y){int t=abs(x-y);return 1ll*t*t*t;}
     8 int main()
     9 {
    10     scanf("%d",&n);
    11     for (int i=1; i<=n; i++) scanf("%d",&a[i]);
    12     std::sort(a+1, a+n+1);
    13     for (int i=3; i<=n; i+=2)
    14         ans += w(a[i], a[i-2]);
    15     for (int i=n-(n&1); i>2; i-=2)
    16         ans += w(a[i], a[i-2]);
    17     ans += w(a[1], a[2])+w(a[n], a[n-1]);
    18     printf("%lld
    ",ans);
    19     return 0;
    20 }

    七月份

    7.1.2018

      1.BZOJ1912  求k=2情形时,将最长链边权赋为-1的正确性?博客:https://www.cnblogs.com/antiquality/p/9248589.html

    7.3.2018

      1.hdu6184求共用一条边的三元环个数https://www.cnblogs.com/antiquality/p/9256837.html被32MB限制卡死

    7.9.2018

      1.hdu1814Peaceful Commission的2-sat板子题死活都WA……https://paste.ubuntu.com/p/RqWnTcnzZ7/

    7.21.2018

      1.7.21序列求和的前缀和巧妙思想

      2.7.17magic的01字母树神奇操作

    7.26.2018

      1.kmp一题https://www.cnblogs.com/antiquality/p/9359509.html:最后一道,晚上困了改日研究。

    八月份

    8.17.2018

      1.埃及分数:正的int传参下去就变负了?https://paste.ubuntu.com/p/bm75GV8CmC/

    九月份

    9.23.2018

      1.给定若干带权线段,多次询问区间[l,r]内完整线段的权值和。

      ans:直接差分,括号序列

    9.26.2018

      1.bzoj5180: [Baltic2016]Cities这题……明明本地大数据跑的比别人快,反而又WA又T……

      https://loj.ac/submissions?problem_id=2783提交记录

    9.27.2018

      1.bzoj1579: [Usaco2009 Feb]Revamping Trails 道路升级  第二种分层图做法挂了

    十月份

    10.17.2018

      1.luoguP2505 [HAOI2012]道路  取了模反而会更快?一脸懵逼。

      ans:不是取模变快的问题。注意常数的影响!比如在dij时候处理距离的拓扑序列。然后可能还是有一点慢所以要开O2

    10.21.2018

      1.luoguP2145 [JSOI2007]祖码  类似coci祖玛的思路做,还看了下精选试题解析那本书,然而依然WA。https://www.luogu.org/recordnew/lists?uid=18351&pid=P2145

    10.22.2018

      1.wqs二分这个东西……为什么一定要减去(强制要求的k*二分出的增量)?

    一月份

    1.5.2019

      1.bzoj1778: [Usaco2010 Hol]Dotp 驱逐猪猡  用f[i]表示在$i$点爆炸的概率,那么就是$f[i]=(i==1?0.5:0)+sum(1-f[j])*(p/q)/(deg[j])$,即把爆炸分割成两个条件:1.到达此点时没爆炸概率  2.在此点爆炸.。但这样好像会在某些地方算重,小样例都过不了。

    二月份

    2.7.2019

      1.cf1110B. Tape 二分最长区间,然后每次贪心检查。WA

    #include<bits/stdc++.h>
    const int maxn = 100035;
    
    int n,m,k,a[maxn],L,R;
    long long ans;
    
    int read()
    {
        char ch = getchar();
        int num = 0, fl = 1;
        for (; !isdigit(ch); ch=getchar())
            if (ch=='-') fl = -1;
        for (; isdigit(ch); ch=getchar())
            num = (num<<1)+(num<<3)+ch-48;
        return num*fl;
    }
    bool check(int x)
    {
        int seg = 0, lst = 1;
        long long cnt = 0;
        for (int i=1; i<=n; i++)
            if (a[i]-a[lst]+1 > x) seg++, cnt += a[i-1]-a[lst]+1, lst = i;
        seg++, cnt += a[n]-a[lst]+1;
        if (seg <= k) ans = std::min(ans, cnt);
        else return 0;
        return 1;
    }
    int main()
    {
        n = read(), m = read(), k = read();
        for (int i=1; i<=n; i++) a[i] = read();
        L = 1, R = m, ans = 1ll<<60;
        for (int mid=(L+R)>>1; L<=R; mid=(L+R)>>1)
            if (check(mid)) R = mid-1;
            else L = mid+1;
        printf("%lld
    ",ans);
        return 0;
    }

      ans:我是zz吧。形如x.....x........x.x.x.x就会把后半段全覆盖了……题意相当于求k-1段最长空段。

    2.8.2019

      1.hh174 这个点分我为什么要跑1.5s?

      1 #include<bits/stdc++.h>
      2 typedef long long ll;
      3 const int maxn = 100035;
      4 const int maxm = 200035;
      5 const int maxNum = 10000035;
      6 
      7 struct Path
      8 {
      9     ll d;
     10     int mx;
     11     Path(ll a=0, int b=0):d(a),mx(b) {}
     12     bool operator < (Path a) const
     13     {
     14         return mx < a.mx;
     15     }
     16 }stk[maxn];
     17 ll ans;
     18 bool vis[maxn];
     19 int n,p,bloTot,cnt[maxNum],a[maxn];
     20 int size[maxn],son[maxn],root,top;
     21 int edgeTot,head[maxn],nxt[maxm],edges[maxm];
     22 
     23 int read()
     24 {
     25     char ch = getchar();
     26     int num = 0, fl = 1;
     27     for (; !isdigit(ch); ch=getchar())
     28         if (ch=='-') fl = -1;
     29     for (; isdigit(ch); ch=getchar())
     30         num = (num<<1)+(num<<3)+ch-48;
     31     return num*fl;
     32 }
     33 void addedge(int u, int v)
     34 {
     35     edges[++edgeTot] = v, nxt[edgeTot] = head[u], head[u] = edgeTot;
     36     edges[++edgeTot] = u, nxt[edgeTot] = head[v], head[v] = edgeTot;
     37 }
     38 void getRoot(int x, int fa)
     39 {
     40     size[x] = 1;
     41     for (int i=head[x]; i!=-1; i=nxt[i])
     42     {
     43         int v = edges[i];
     44         if ((v!=fa)&&(!vis[v])){
     45             getRoot(v, x), size[x] += size[v];
     46             son[x] = std::max(son[x], size[v]);
     47         }
     48     }
     49     son[x] = std::max(son[x], bloTot-size[x]);
     50     if (son[x] < son[root]) root = x;
     51 }
     52 void dfs(int x, int fa, ll d, int mx)
     53 {
     54     stk[++top] = Path(d, mx);
     55     for (int i=head[x]; i!=-1; i=nxt[i])
     56     {
     57         int v = edges[i];
     58         if ((v!=fa)&&(!vis[v])) dfs(v, x, d+a[v], std::max(mx, a[v]));
     59     }
     60 }
     61 void calc(int x, int fa, int d, int opt)
     62 {
     63     top = 0;
     64     dfs(x, fa, d+a[x], std::max(d, a[x]));
     65     std::sort(stk+1, stk+top+1);
     66 //    for (int i=1; i<=top; i++)
     67 //        printf("dis:%lld mx:%d
    ",stk[i].d,stk[i].mx);
     68     long long tot = 0;
     69     for (int i=1; i<=top; i++)
     70     {
     71         tot += cnt[(stk[i].mx+p-stk[i].d%p)%p]*opt;
     72         ++cnt[((stk[i].d-a[fa]%p+p)%p+p)%p];
     73     }
     74     ans += tot;
     75 //    printf("sum:%lld
    ",tot);
     76 //    puts("--------------------------");
     77     for (int i=1; i<=top; i++)
     78         --cnt[((stk[i].d-a[fa]%p+p)%p+p)%p];
     79 }
     80 void deal(int x)
     81 {
     82     ++dmd;
     83     calc(x, x, 0, 1), vis[x] = 1;
     84     for (int i=head[x]; i!=-1; i=nxt[i])
     85     {
     86         int v = edges[i];
     87         if (!vis[v]) calc(v, x, a[x], -1);
     88     }
     89     for (int i=head[x]; i!=-1; i=nxt[i])
     90     {
     91         int v = edges[i];
     92         if (!vis[v]){
     93             bloTot = size[v], root = 0;
     94             getRoot(v, 0), deal(root);
     95         }
     96     }
     97 }
     98 int main()
     99 {
    100     freopen("hh174.in","r",stdin);
    101     memset(head, -1, sizeof head);
    102     n = read(), p = read(), bloTot = son[0] = n;
    103     for (int i=1; i<n; i++) addedge(read(), read());
    104     for (int i=1; i<=n; i++) a[i] = read();
    105     getRoot(1, 0), deal(root);
    106     printf("%lld
    ",ans+n);
    107     return 0;
    108 }
    View Code

     2.9.2019

      1.hh182B. Rabbit  贡献不独立?

    2.11.2019

      1.bzoj2502: 清理雪道  其实并没有很懂

      2.bzoj2406: 矩阵  为什么以及如何判定上下界网络流已经明白了。但是还是没有懂虚拟源汇和超级源汇的建边过程。

    三月份

    3.10.2019

      1.hh#187. Hashit  哈希数字符串的正确姿势?血的事实说明并不是模数越多越好。

      ans:这个,可以参考OI视角浅谈布隆过滤器,个人感觉低配多哈希性价比并不怎样。

    3.17.2019

      1.Bell数为什么是$B_{n+1}=sumlimits_{i=0}^{n}{nchoose i}B_i$而不是$B_{n+1}=sumlimits_{i=0}^{n}{nchoose i}B_{n-i}$

      ans:原问题过水,已隐藏……

    八月份

    8.12.2019

      1.8.12时空阵 计数:使得地点 1 和地点 n 之间的 最短距离恰好为 k。k=2部分分。

       ans:预处理出错,已隐藏                        

  • 相关阅读:
    java包和jar包
    java异常总结
    java异常练习2
    java中的异常处理机制_函数覆盖时的异常特点
    React(三)TableBar,ToDoList,Redux案例
    React(二)组件通信
    React(二)组件通信
    React(一)起步
    React(一)起步
    Vue(二)进阶
  • 原文地址:https://www.cnblogs.com/antiquality/p/8504003.html
Copyright © 2011-2022 走看看