• 【做题记录】公开题题目泛做


      记录一下一些有趣题目的做法。(实时更新)

    UOJ310

    【题意】

       给出N((N leq 10^6))个数字,两个人来选。每一个人各选出一个数字((S leq 10^6))集合(集合不能相交)。问两个人取的数字的异或和正好相等的方案数(模一个NTT质数)。

    【做法】

      先试着暴力用FWT来表示,然后优化这一过程,发现另一个形式的FWT>_<。

    hdu5870

    【题意】

       给出一个(N)个点、(M)条边的简单无向图。再给定一个常数(X)。对于一个无序对((x,y)),如果存在一个正数(z),使得添加了(x-y),长度为(z)的边后,原图仍然没有重边,且从(1)(N)的最短路路径数增加量 > X ,那么称其为合法的。求合法的((x,y))组数。 (N leq 20000) , $ M leq 10^5 $, $ X leq 10^9 $

    【做法】

      感觉这题挺不错。首先假设暴力枚举两个点x和y,判断在它们之间连边是否合法。我们不妨设(f_x)为从1到x的走最短路方案数,(g_y)表示从y到n的走最短路方案数,那么增加的方案数显然为(f_x*g_y)(注意x和y不必一定在原图的最短路上);同时我们必须保证(dist_{1,x}+dist{y,n}<dist{1,n})。根据上面的式子,我们可以按dist重新编号点,每次枚举y后,对应前缀的一段x合法。判断 (f_x*g_y) > X 时,可以用可持久化线段树计算合法的x数量(也可以离线)。效率是(O(N log N))

  • 相关阅读:
    轮播图
    MySQL初认识
    css的动画
    jQuery 滚动监听总结
    DOM操作 练习
    Ajax总结
    日历 练习
    Jquery基础
    2018-07-14Java基础+基本数据类型+自动/强制数据类型转换+定义变量+运算符
    2018-07-13E-R图设计数据库+三大范式+修改用户密码+分配用户权限
  • 原文地址:https://www.cnblogs.com/jiangshibiao/p/7197805.html
Copyright © 2020-2023  润新知