原题目

  Describe:注意是“两次及以上”而不是“两种及以上”!!

  code:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int k,m,n,ans;
  4. int f[1005][1005],cnt[20],a[1005][1005];
  5. inline int read(){
  6. int ret=0,f=1;char ch=getchar();
  7. while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}
  8. while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
  9. return ret*f;
  10. }
  11. inline int lowbit(int x){
  12. return (-x)&x;
  13. }
  14. inline void write(int x){
  15. if(x<0){putchar('-');write(-x);return;}
  16. if(x/10)write(x/10);
  17. putchar(x%10+'0');
  18. }
  19. inline int search(int x,int y){
  20. if(x==n&&y==m+1)return 1; //Finish the search
  21. if(y==m+1)y=1,x++; //下一行
  22. int Sum=f[x-1][y]|f[x][y-1],pr=-1,sum=0,ans=0; //Sum=当前方格上面及左边共被使用多少个颜色
  23. for(int i=Sum;i>0;i-=lowbit(i))sum++; //统计当前状态下有多少个颜色已被使用
  24. if(n+m-x-y-1>k-sum)return 0; //剪枝,若剩余方格少于剩余颜色
  25. for(int i=1;i<=k;i++){ //枚举状态
  26. if((1<<(i-1))&Sum)continue; //已被使用
  27. if(!a[x][y]||a[x][y]==i){ //未被涂色或已涂颜色未被使用
  28. f[x][y]=Sum|(1<<(i-1)); //涂成当前颜色,加入状态
  29. if(!cnt[i]){ //------------DFS模板---------------
  30. cnt[i]++;
  31. if(pr==-1)pr=search(x,y+1);
  32. ans+=pr;
  33. }
  34. else cnt[i]++,ans+=search(x,y+1);
  35. ans%=1000000007;cnt[i]--;
  36. }
  37. }
  38. return ans;
  39. }
  40. int main(){
  41. freopen("paths.in","r",stdin);
  42. freopen("paths.out","w",stdout);
  43. n=read(),m=read(),k=read();
  44. for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)a[i][j]=read(),cnt[a[i][j]]++;
  45. ans=search(1,1);write(ans);
  46. }

  

Day1-T4的更多相关文章

  1. BZOJ1202 狡猾的商人

    HNOI2005 Day1 T4 Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1, ...

  2. 【NOI复习】树链剖分

    简介 树链剖分通常用来解决一类维护静态树上路径信息的问题, 例如:给定一棵点带权树, 接下来每次操作会修改某条路径上所有点的权值(修改为同一个值或是同加上一个值等) , 以及询问某条路径上所有点的权值 ...

  3. 算法复习——树链剖分模板(bzoj1036)

    题目: 题目背景 ZJOI2008 DAY1 T4 题目描述 一棵树上有 n 个节点,编号分别为 1 到 n ,每个节点都有一个权值 w .我们将以下面的形式来要求你对这棵树完成一些操作:I.CHAN ...

  4. Day1:T3 bfs T4 树形DP

    T3:BFS 回看了一下Day1的T3...感觉裸裸的BFS,自己当时居然没有看出来... 同时用上升和下降两种状态bfs即可 这一题还要注意一个细节的地方,就是题目要求的是求往返的最优解 k=min ...

  5. 【2014广州市选day1】JZOJ2020年9月12日提高B组T4 字符串距离

    [2014广州市选day1]JZOJ2020年9月12日提高B组T4 字符串距离 题目 Description 给出两个由小写字母组成的字符串 X 和Y ,我们需要算出两个字符串的距离,定义如下: 1 ...

  6. 考前停课集训 Day1 废

    [友情链接] Day1 今天模拟赛倒数…… 感觉自己菜到爆炸…… 被一个以前初一的倒数爆踩…… 感觉自己白学了. 满分400,自己只有100.真的是倒数第一…… 做了一个T2,其他暴力分全部没有拿到… ...

  7. 2019暑期金华集训 Day1 组合计数

    自闭集训 Day1 组合计数 T1 \(n\le 10\):直接暴力枚举. \(n\le 32\):meet in the middle,如果左边选了\(x\),右边选了\(y\)(且\(x+y\le ...

  8. [GDKOI2021] 普及组 Day1 总结

    [ G D K O I 2021 ] 普 及 组 D a y 1 总 结 [GDKOI2021] 普及组 Day1 总结 [GDKOI2021]普及组Day1总结 长达3天的快乐GDKOI2021普及 ...

  9. 【总结】2022GDOI普及组试题与题解(缺两天的T4)

    标签 2022 广东省选普及组 GDOI 试题 前往Luogu下载 Luogu下载:This Day1题解 T1 邹忌讽齐王纳谏 打卡题,建议模拟 建议使用map,时间复杂度为\(O(nlogn)\) ...

  10. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

随机推荐

  1. 为什么mysql having的条件表达式可以直接使用select后的别名?

    SQL语句的语法顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -&g ...

  2. 几款Java模板引擎的性能评测

    参评的几款模板引擎为:XMLTemplate(简称XT)Velocity(简称VT)CommonTemplate(简称CT)FreeMarker(简称FT)Smarty4j(简称ST)直接的java代 ...

  3. python 阶乘函数

    def num(n): if n == 1: return n return n*num(n-1) print(num(10)) 输出 3628800 该函数使用了递归函数的规则.return 后面为 ...

  4. 简单模拟IOC容器:返回对象并能抛出异常

    本次要求:已知com.zzj.vo包下分别有Tiger.lion.Elephant三个Java源文件,请据此实现以下功能:①.自定义一个名为Component的注解,要求该注解只能用于类且代码运行时该 ...

  5. mysql explain参数解析

    建表语句 -- ---------------------------- -- Records of departments -- ---------------------------- INSER ...

  6. maven安装和eclipse集成遇到的问题

    修改完maven的位置之后,修改配置文件conf/settings.xml <localRepository>E:/apache-maven-3.3.1-bin/mvn/mvnreposi ...

  7. 赶在EW2020之前,FreeRTOS发布V10.3.0,将推出首个LTS版本

    点击下载:FreeRTOSv10.3.0.exe 说明: 1.新版更新: (1)对于IAR For RISC-V进行支持,并且加强了对RISC-V内核芯片支持,做了多处修正. (2)对阿里平头哥CH2 ...

  8. log4j 功能说明

    log4j 是一个非常强大的日志工具,应用于很多开源项目的.具体有以下几种功能: 定制不同输出的级别:ALL > TRACE > DEBUG > INFO > WARN > ...

  9. sed的妙用

    sed 使用-n选项和p可以实现在指定范围内的搜索貌似实现了比grep更精确的搜索

  10. BAT 五路internet负载均衡

    一个网上下载的bat文件 也不记得从那里下载的了 记得似乎需要管理员权限运行 依稀记得测试有效 放在这里做个记录 @echo off echo. echo ╭─────────╮ echo ╭──── ...