zoukankan      html  css  js  c++  java
  • Codeforces Round #368 (Div. 2)

    A:傻逼模拟题,直接上代码好了。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 using namespace std;
     7 int n,m;
     8 char st[5];
     9 bool bo;
    10 int main(){
    11     scanf("%d%d",&n,&m);
    12     bo=1;
    13     for (int i=1;i<=n;i++){
    14         for (int j=1;j<=m;j++){
    15             scanf("%s",st+1);
    16             if ((st[1]=='C') || (st[1]=='M') || (st[1]=='Y')) bo=0;
    17         }
    18     }
    19     if (bo==1) puts("#Black&White");
    20     else puts("#Color");
    21     return 0;
    22 }
    View Code

    B:给定n个点,m条边,k个特殊点,要求选出一个非特殊点,记这个点到某个特殊点的距离为x,最小化x,若无法找到某个非特殊点与某个特殊点连通或k=0,输出-1.

    做法:我的做法:由于是到某个特殊点的最小距离,我就把所有特殊点缩成一个点,原图中的边,如果是特殊点与特殊点的边,新图中不管,如果是非与非,就照样连,健一个s点,若为非与特,则s与非连边,最后从s点跑一次单源最短路,找到最小的dist即可。

    正解:由于边为非负数,所以这个点必定直接与某个特殊点相连,直接枚举每个特殊点以及与这个特殊点相邻的点,用这条边的权值更新答案即可,复杂度为O(m)。

    C:勾股数的构造,给定n,输出m,k使得(n,m,k)为一组勾股数,做法:若n<=2,无解,否则,若n为奇数,m=n*n/2,k=m+1;若n为偶数,m=n*n/4-1,k=n*n/4+1;

    D:题意:给定一个n*m的矩阵,初始时为0,4种操作,对于前3中操作,i-1向i连边,否则k向i连边,这是一棵树,我们dfs这个树,每个操作暴力做即可,为什么呢?因为这个题的瓶颈就在于4操作,某些操作会被做多次,这样就是nq的了。

    E:题意:给定一个n*m的矩阵,有k个集合,q个操作,操作1每次把一个集合的存在性取反,操作2询问某个矩形中的存在的元素的权值和,保证询问的个数小于2000,预处理每个集合对每个询问的影响,这个怎么做呢?我们枚举每个集合,把他加进树状数组,枚举2000个询问,计算答案即可,复杂度n^2logn^2+qlogn^2,之后就很脑残了。

  • 相关阅读:
    Easyui-datagrid显示时间的格式化代码
    JSP页面与JSP页面之间传输参数出现中文乱码的解决方案
    SpringMVC中在web.xml中添加中文过滤器的写法
    SpringMVC的实现过程
    BeanFactory 和 ApplicationContext的区别
    Spring中的IoC(控制反转)具体是什么东西
    Spring/AOP框架, 以及使用注解
    面向切面编程
    Spring的属性注入, byName和byType还有注入List属性
    反射, getClass(), 和something.class以及类型类(转)
  • 原文地址:https://www.cnblogs.com/OYzx/p/5792371.html
Copyright © 2011-2022 走看看