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

模拟退火的

题目链接

体验乱调参数而看天意的奇特体验

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll,ll> pii;
const int inf=0x3f3f3f3f;
const int N=1e5+10;
const int mod=1e9+7;
//#define int long long
const ll INF=2e9+10;mt19937_64 rd(23333);
uniform_real_distribution<double> drd(0.000001,0.99999);int n,m,c,res;
int a[300];
int b[30][30];
int nx[4]={0,1,0,-1},ny[4]={1,0,-1,0};
int ans[30][30],q;void init(){int pos=1;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){while(a[pos]==0)pos++;a[pos]--;b[i][j]=pos;ans[i][j]=b[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){for(int k=0;k<4;k++){int xx=i+nx[k];int yy=j+ny[k];if(xx<1||xx>n||yy<1||yy>m)continue;if(b[xx][yy]!=b[i][j])res++;}}}res/=2;q=res;
}int cal(int x,int y){int re=0;for(int k=0;k<4;k++){int xx=x+nx[k];int yy=y+ny[k];if(xx<1||xx>n||yy<1||yy>m)continue;if(b[xx][yy]!=b[x][y])re++;}return re;
}void sa(){for(int t=1e15;t>=1e-15;t*=0.9999){int x1=(rd()%n)+1;int y1=(rd()%m)+1;int x2=(rd()%n)+1;int y2=(rd()%m)+1;if(b[x1][y1]==b[x2][y2])continue;int pre=cal(x1,y1)+cal(x2,y2);swap(b[x1][y1],b[x2][y2]);int nex=cal(x1,y1)+cal(x2,y2);int temp=res+nex-pre;int sub=res-temp;if(sub>0){res=temp;if(res<q){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)ans[i][j]=b[i][j];q=res;}}else if(exp(sub/t)<1.0*drd(rd))res=temp;elseswap(b[x1][y1],b[x2][y2]);}
}void solve(){cin>>n>>m>>c;for(int i=1;i<=c;i++)cin>>a[i];init();while(clock()/(1.0*CLOCKS_PER_SEC)<=4.89) sa();//cout<<q<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){if(j>1) cout<<' ';cout<<ans[i][j];}cout<<endl;}
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t=1;//cin>>t;while(t--){solve();}return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • WebRTC ICE配置类型
  • MySQL使用(表)
  • 【零基础实战】基于物联网的人工淡水湖养殖系统设计
  • 如何将 GTA Online 的加载时间缩短 70%
  • docker搭建内网穿透服务
  • 保姆级教程,一文了解LVS
  • Ashok:一款多功能开源网络侦查OSINT工具
  • docker基础命令
  • 【Kubernetes】k8s集群资源调度
  • 概率论原理精解【9】
  • 软件测试需要具备的基础知识【功能测试】---前端知识(三)
  • MQTT协议
  • 机器学习——第九章 聚类
  • 【人工智能】【机器学习】-好书推荐之《Python神经网络编程》
  • 趣味算法------开灯问题
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Android单元测试 - 几个重要问题
  • canvas绘制圆角头像
  • flutter的key在widget list的作用以及必要性
  • HTTP中GET与POST的区别 99%的错误认识
  • Iterator 和 for...of 循环
  • JavaScript设计模式系列一:工厂模式
  • leetcode386. Lexicographical Numbers
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Material Design
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Spring Cloud Feign的两种使用姿势
  • SwizzleMethod 黑魔法
  • Vue2.0 实现互斥
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 浮现式设计
  • 算法---两个栈实现一个队列
  • 用Visual Studio开发以太坊智能合约
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #NOIP 2014# day.2 T2 寻找道路
  • (1)无线电失控保护(二)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (void) (_x == _y)的作用
  • (笔记)M1使用hombrew安装qemu
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (回溯) LeetCode 46. 全排列
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)docker:Dockerfile构建容器运行jar包
  • (转) Android中ViewStub组件使用
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *Django中的Ajax 纯js的书写样式1
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .naturalWidth 和naturalHeight属性,
  • .NET 4.0中的泛型协变和反变
  • .NET 8.0 发布到 IIS
  • .net framework profiles /.net framework 配置
  • .NET正则基础之——正则委托
  • /proc/vmstat 详解
  • /tmp目录下出现system-private文件夹解决方法