当前位置: 首页 > news >正文

洛谷P1074 [NOIP 2009 提高组] 靶形数独题解

什么 蓝题能用dfs做?!

DFS大法好!

这道题就是一道数独的加强版,还要算分数,数独问题就是DFS回溯加剪枝优化。

填数独

那就是dfs枚举填数情况(剪枝加回溯)

解出来时 再去乘以图表就行了

#include<bits/stdc++.h> using namespace std; long long n=0,cnt,a[10][10],ans=-1,c[10][10]= { 0,0,0,0,0,0,0,0,0,0, 0,6,6,6,6,6,6,6,6,6, 0,6,7,7,7,7,7,7,7,6, 0,6,7,8,8,8,8,8,7,6, 0,6,7,8,9,9,9,8,7,6, 0,6,7,8,9,10,9,8,7,6, 0,6,7,8,9,9,9,8,7,6, 0,6,7,8,8,8,8,8,7,6, 0,6,7,7,7,7,7,7,7,6, 0,6,6,6,6,6,6,6,6,6 }; bool h[10][10],l[10][10],g[4][4][10]; long long f (long long nn,long long m) { long long x=0; for(int i=9;i>=1;i--) { if(h[nn][i]==false&&l[m][i]==false&&g[(nn-1)/3][(m-1)/3][i]==false) x++; } return x; } struct ccs { long long x,y,z; }s[82]; bool cmp(ccs a,ccs b) { return a.z<b.z; } void dfs(long long m) { for(int i=m;i<=n;i++) { s[i].z=f(s[i].x,s[i].y); } sort(s+m,s+n+1,cmp); long long x=s[m].x,y=s[m].y; if(cnt+90*(n-m+1)<=ans) return; if(m==n+1) { ans=max(ans,cnt); return ; } if(f(x,y)==0) return; for(int i=9;i>=1;i--) { if(h[x][i]==false&&l[y][i]==false&&g[(x-1)/3][(y-1)/3][i]==false) { a[x][y]=i; h[x][i]=true; l[y][i]=true; cnt+=i*c[x][y]; g[(x-1)/3][(y-1)/3][i]=true; dfs(m+1); cnt-=i*c[x][y]; a[x][y]=0; h[x][i]=false; l[y][i]=false; g[(x-1)/3][(y-1)/3][i]=false; } } } int main() { ios::sync_with_stdio(false); cin.tie(0); for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { cin>>a[i][j]; if(a[i][j]!=0) { h[i][a[i][j]]=true; l[j][a[i][j]]=true; g[(i-1)/3][(j-1)/3][a[i][j]]=true; cnt+=a[i][j]*c[i][j]; }else{ n++; s[n].x=i; s[n].y=j; s[n].z=0; } } } dfs(1); cout<<ans; return 0; }
http://www.jsqmd.com/news/773615/

相关文章:

  • Fernflower:Java字节码智能反编译的艺术与实践
  • 如何用FUnIE-GAN打破水下视觉迷雾?3分钟掌握实时图像增强核心技术
  • 零基础如何做车载嵌入式开发?学好C++至关重要
  • 【DAY 1.数据结构之反转链表1.牛客网BM1】
  • 多智能体协作框架:AI驱动的软件开发团队自动化实践
  • OpenCore Legacy Patcher:突破苹果硬件限制的系统兼容性架构解析
  • Gemini3.1Pro一键生成高效教研方案
  • 氢燃料微型燃气轮机增程系统建模及控制策略【附代码】
  • 开源中国的国产化突围:构建安全可控的智能研发生态体系
  • 分布式搜索引擎:Elasticsearch 从入门到实战
  • 高通全新骁龙芯片将大幅减少中端安卓手机卡顿现象
  • LTC3783 LED驱动控制器设计与效率优化详解
  • 嵌入式开发新利器:轻量级芯片包管理器vpm实战指南
  • BepInEx完整指南:5分钟掌握Unity游戏插件框架的安装与配置
  • PatreonDownloader终极指南:轻松备份Patreon付费内容的完整解决方案
  • 交互式学习平台Vibe-Learn:架构设计与实战搭建指南
  • 三维计算几何基础
  • 从DS18B20到BMI088:聊聊那些年我用过的传感器,以及如何为你的项目选型
  • 金融智能体开发实战:基于eforest-agent-skills构建领域专家Agent
  • Python科研绘图实践【13】——线性回归拟合图附代码
  • taotoken 的按 token 计费模式让实验性项目成本可控
  • STM32H7实战:用MPU给你的关键外设(如FMC)加把锁,防止程序跑飞误操作
  • 基于向量数据库与语义搜索的智能代码片段管理实践
  • AI工具搭建自动化视频生成LoHa
  • 基于异步IO与模块化设计的Python数据抓取框架Catclaw实战指南
  • 利用MCP协议与mcp-conf工具,为AI编程助手构建深度项目感知能力
  • 为什么Lumafly正在重新定义空洞骑士模组管理?5个颠覆传统认知的智能解决方案
  • 打工人PPT救星!一键制作工具大揭秘
  • Waydroid完整配置指南:在Linux系统上运行Android应用的容器化方案
  • AI数据流编排框架AirWeave:构建高效实时数据处理管道