zoukankan      html  css  js  c++  java
  • acm训练记1:2016沈阳现场赛

    我实在也不是谦虚,我一个退役苟怎么就去搞acm了呢
    jcvb太神啦

    A:输入两个数,输出两个之和加上其中较大的那个,sb题;

    B:输入一个由C,O,H构成的物质,输出其相对分子质量,sb题(好像题目保证有这种物质);

    C:(a_1=a),(a_2=b),(a_n=2*a_{n-2}+a_{n-1}+n^4),球(a_n)。矩阵乘法sb题,记录(a_{n-1}),(a_n),1,n,(n^2),(n^3),(n^4)
    我才不会说如果令(b_n=a_n+frac{1}{2}n^4+5n^3+24n^2+frac{139}{2}n+100),则有(b_n=2b_{n-2}+b_{n-1})

    D:Alice和Bob在买m件商品,每次每人出一个价,如果有一人出价比另一个高则价高者获得这件商品,否则奇数轮Alice获得,偶数轮Bob获得。
    (f[i][j][k])表示当前还剩(i)件物品,先出价者(A)有(j)元,后出价者(B)有(k)元时,先出价者能获得多少件物品。显然,初始可以假设两个人出价都是0元,这时A的收益是i-f[i-1][k][j],B想:他加价(1元)的话A的收益是i-1-f[i-1][k-1][j],如果此时A收益减少,则B显然会采用这个策略;然后A想:她加价的话如果A收益增加,则A采用这个策略。猜结论:这样最后停止时就得到最优解。时间复杂度(O(n^4))我也不知道怎么过的(n,a,ble255),可能上述轮流加价的过程均摊(O(1))吧;

    E:输入一个图,点数不超过50,每个点度数不超过20,球它的大小为S的生成完全子图个数。爆搜即可,sb题;

    F:给定一些三维旋转操作,定义两个旋转操作的距离是给定两个旋转(R_1)(R_2)的距离为(max_{|x|=1} dist(R_1(p),R_2(p))),其中(dist(a,b))为两个点在单位球上的距离。
    考虑球两个旋转操作的距离,首先把球面距离变为欧几里得距离,即球(max_{|x|=1} |Ax-Bx|)(|Ax-Bx|^2=|Ax|^2+|Bx|^2-2x^TA^TBx)(|Ax|=|Bx|=1),即球(x^TA^TBx)的最小值,令(C=A^TB),则C时一个正交矩阵。考虑把这个二次型标准化,显然一个特征值为1,若三个特征值都是实数,则最小值即为最小的特征值,若三个特征值有2个复数,则这两个复数显然互为共轭且膜长都是1,即C可以标准化为(left[egin{matrix}1&0&0\0&cos{ heta}&sin{ heta}\0&-sin{ heta}&cos{ heta}end{matrix} ight]),即为(x^2+(y^2+z^2)cos{ heta}),最小值为(cos{ heta}).

    G:有一个底面半径为1,高为2的圆柱体容器,里面装有高度为(h)的水,现将容器歪斜知道水刚好无法溢出,球此时水的表面积。
    1、(hge1),则表面为一个椭圆,容易算出椭圆的半长轴长(sqrt{(2-h)^2+1})和半短轴长1;
    2、(h<1),则表面为椭圆的一个部分,先球表面和桶壁的夹角( heta),考虑平行于底面的一层,截面为一个弓形,假设距离顶端的距离为(x),则当前弓形的圆心角为(cos{eta}=1-x an{ heta}),面积为(2eta-frac{1}{2}sin{2eta}),积分即为(int_{0}^{2} (2eta-frac{1}{2}sin{2eta})\,dx = int_{0}^{1-2 an{ heta}} (2eta-frac{1}{2}sin{2eta})\,d(cos{eta}) = -int_{0}^{arccos{(1-2 an{ heta}})} 2etasin{eta}-frac{1}{2}sin{2eta}sin{eta}\,deta=(sin{x}-xcos{x}-frac{1}{3}sin^3{x})|_{0}^{arccos{(1-2 an{ heta}})}),二分( heta)即可。

    H:有n个人,每个人猜测一个不同的长度为L的1到6构成的序列,现在掷一个均匀的骰子,当某一个人的猜测第一次出现的时候结束,这个人获胜,球每个人获胜的概率。
    建出猜测的ac自动机,把所有结束状态的点的出边去掉,记转移矩阵为A,则所求为((A^0+A^1+cdots)x=frac{1}{I-A}x),球一个逆矩阵即可。

    I:有一棵树,每条边有一个长度,每个点的父亲节点编号小于它,根节点居住着一个“长者”,其余每个点有一个“记者”,每个“记者”能沿着边移动,连续移动距离L的时间为(L^2),休息一下的时间为P,只能在节点处休息,球每个点到根节点的最短时间。
    dp,有根树点分治。先用根节点到重心父亲的路径更新重心为根的子树的dp值,再用重心的dp值更新所有重心的后代。

    J:一个无向图为基环树,要求兹磁两个操作:1、把与某个点x距离不超过k的点权值加y;2、球与某个点x距离不超过k的点权和。(kle2)
    考虑bfs序上与x距离不超过2的点一定为(le)常数段区间的并,线段树即可,由于有环,全是细节。要是考场上遇到就交给敦敦大了

    K:p是一个素数,p=13或103或100003,定义(r(h,k)=2^{sin^3{(2pifrac{hk}{p})}}),输入一个序列(a_0,a_1,cdots,a_{p-1}),定义(b_k=sum_{h=0}^{p-1} a_h*r(h,k)),球(b_k).
    先用原根转化,则转化为(b'_k=a_0+sum_{h=0}^{p-2}a'_h*c_{h+k}),把(a_k)反过来就变成卷积形式orz,fft即可

    L:不会,感觉是一个码农dp题

    M:有一些物品,每个物品有三个属性,当前颜色为0时的价值,当前颜色为1时的价值,物品的颜色。对于一个物品序列,定义总价值为维护一个当前颜色,初始颜色为0,先累加上每个物品在当前颜色下的价值,再把当前颜色变为该物品的颜色。给定n个物品,球第k大的子序列价值。
    显然可以转化为k长路问题【由于图是一个dag,所以是p的】,暴力上堆即可。吐槽:可持久化堆真费空间啊,能不用的地方一定不能用,要不然直接mle。

  • 相关阅读:
    代码 自动化部署
    java 反射工具
    springBoot 简化读取配置 Configuration Processor
    docker 安装redis
    怎么用mybatis
    shiro框架
    Nginx 负载均衡的几种方式
    CSS Reset
    两种CSS3圆环进度条详解
    兼容全浏览器的本地图片预览
  • 原文地址:https://www.cnblogs.com/shanquan2/p/7087259.html
Copyright © 2011-2022 走看看