zoukankan      html  css  js  c++  java
  • TC SRM 655 DIV1 250,500pt

    250:

    给一个n*n的格子图,每个格子颜色为白色或者红色。假设刚开始都是白色,每次可以涂k*k的一块正方形格子区域,涂成红色或白色,后面涂的可以覆盖前面涂的。给你最终状态,问从初始状态涂任意次数,可不可以涂成最终状态。

    挺不错的题,感觉比500有意思。刚开始想简单了,就从前往后枚举,碰到跟最终状态不同就涂。很显然错了。其实实质还是贪心,因为后涂的覆盖前面涂的,所以从最后开始考虑,每次选一块完整颜色相同的出来,涂成该颜色,然后以后该区域的颜色就不会变了,这样贪心的每次选一块可以涂的区域出来,直到没有了为止。最后判断是否涂成最终状态。

    500:

    实质就是多元线性方程组的解,取模的。还久没碰这种题了,刚开始就去找这方面的陈题来看,推了半天,发现不过不是这题0和9一样的话,只要看化简一下就完了,剩下就是10的XX次方了。但是这里0和9这两个数跟其他数不一样。然后我就往化简、高斯消元方向想了。其实最土的DP也想过,就是记录9^5个状态,扫一遍5000,枚举状态9,总复杂度9^6*5000,不靠谱。看别人代码后才发现,就是这最土的DP的方向,然后关键要看出每列状态最多32种,所以不用扫描5000,大概就是预处理下,32*9^6的级别吧。

  • 相关阅读:
    分布式机器学习:算法、理论与实践——【1】
    LLVM Cookbook
    【前端】Webpack 进阶
    Noip2015 运输计划 树上差分 二分答案
    bzoj 2259: [Oibh]新型计算机 最短路 建模
    888E
    [ZJOI2012]旅游 对偶图 树的直径
    [HAOI2007]理想的正方形 单调队列 暴力
    bzoj1457: 棋盘游戏 SG函数 Nim
    Bomb HDU
  • 原文地址:https://www.cnblogs.com/seen1020/p/4414326.html
Copyright © 2011-2022 走看看