zoukankan      html  css  js  c++  java
  • Codeforces Round #383(div 2)

    A、快速幂

    B、 题意:求ai^aj=x的数对个数,x和a[]给定

      分析:a^b=c,则a^c=b,所以求ai^x=aj的个数,枚举一遍即可

    C、 题意:给你一个有向图,每个点的出边只有一条,求最小的n,使得从任意点走2n步都可以走回原点

      分析:先判断是否存在,如果存在,那么图中肯定是一个个的简单环,所以每个点的入度和出度都为1,否则不存在

         对于存在的情况,遍历每个环,得出它们的长度,求出它们长度的最小公倍数lcm

         若lcm是偶数,那么ans=lcm/2,如果lcm是奇数,那么ans=lcm

    D、 题意:n件物品,背包容量m的01背包,给出物品间的关系图,同一个连通块内的物品,要么选任意一个,要么不选,要么全选,求最大价值。

      分析:先介绍下分组背包,分组背包就是在01背包的基础上,规定一些组别,每一组里的物品要么不选,要么只能选一个

         for(int k=1;k<=p;++k)//枚举组别

          for(int j=m;j>=0;--j)//枚举包的容量

            for(int i=1;i<=n[k];++i)//枚举k组里的所有物品

              f[j]=max(f[j],f[j-w[i]]+v[i])

         这样改变枚举物品的顺序,巧妙的做到了每一组里面最多只选一个物品

         此题相较于分组背包而言,多了一个“要么全选”,这其实就是在该组中多加一个物品,该物品的重量和价值是该组物品的重量和价值总和

    E、 题意:n对情侣(2n个人)坐成一个圈,给每个人数字1或数字2,要求每对情侣间数字必须不同、任意三个连续的人不能相同数字,问是否存在方案,如果存在输出任意一种。

      分析:先考虑的是2-SAT问题,但是仔细一想发现这里涉及到三个人,所以是3-SAT问题,这是个NPC问题……

         然后考虑类似的能不能用差分约束表示,结果发现难点还是在于三个人等价于三个变量……差分约束的边没法建

         最后参考了题解,很巧妙

         假设方案存在,将2i和2i-1连边、每对情侣连边,那么易得这个图里如果存在环必然是偶环,不存在奇环,它是个二分图

         核对下题意,这样建图,任意三个连续的点,必然有一个点和另外两个点不在二分图的同一边,就满足颜色不能都相同!

         所以先染色判断是否二分图,如果是二分图,将二分图的左边令为1,右边令为2就行了

  • 相关阅读:
    StreamSets学习系列之StreamSets是什么?
    [转]How to mouse hover using Blue prism on a web page
    [转]UiPath: How to Capture a Mouse Event on Hover Menus?
    [转]VB.net中 excel 的range方法
    [转]Paste from Excel into C# app, retaining full precision
    [转]uipath team svn
    [转]RPA认证 Developer UIPath Certificate,细说uipath认证学习,Online Quiz和Practical Exam项目详解
    [转]UiPath教程:UiPath及其组件介绍
    [转]Introduction
    [转]How to enable macros in Excel 2016, 2013, and 2010
  • 原文地址:https://www.cnblogs.com/wmrv587/p/6188753.html
Copyright © 2011-2022 走看看