板子那篇烂尾了,等 \(25\) 年 \(csp\) 时再继续写吧

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,b[5000004];
int opt[5000003];
int x[5000004];
int a[5000004];
int y[5000004];
int len;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>opt[i]>>x[i];
if(opt[i]==2) cin>>y[i];
}
for(int i=0;i<=500005;i++) b[i]=i;
for(int i=n;i>=1;i--){
if(opt[i]==1){
a[++len]=b[x[i]];
}
else{
b[x[i]]=b[y[i]];
}
}
for(int i=len;i>=1;i--){
cout<<a[i]<<" ";
}
}
  • 15数码问题

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int t_x[16]={3,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3};
int t_y[16]={3,0,1,2,3,0,1,2,3,0,1,2,3,0,1,2};
int opt_x[5]={1,0,0,-1};
int opt_y[5]={0,-1,1,0};
int step[60];
char opt[6]={'D','L','R','U'};
int ans;
int b[10][10];
int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,0}};
void dfs(int x,int y,int s,int stp,int r,int last){
if(stp+s>r) return ;
if(!s) {
ans=stp;
return ;
}
int sum=stp;
for(int i=0;i<4;i++){
if(last+i==3) continue;
else{
int x_=x+opt_x[i],y_=y+opt_y[i];
if(x_<0||x_>3||y_<0||y_>3) continue;
int now_s=s;
int to=b[x_][y_];
now_s+=abs(x-t_x[to]);
now_s+=abs(y-t_y[to]);
now_s-=abs(x_-t_x[to]);
now_s-=abs(y_-t_y[to]);
step[stp+1]=i;
swap(b[x_][y_],b[x][y]);
dfs(x_,y_,now_s,stp+1,r,i);
if(ans!=1e9) return ;
swap(b[x_][y_],b[x][y]);
}
}
return ;
}
int T;
int c[100];
int main(){
cin>>T;
while(T--){
int s_x,s_y;
int num=0;
int ok=0;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
scanf("%d",&b[i][j]);
c[num]=b[i][j];
if(b[i][j]==0) s_x=i,s_y=j,ok+=3-num/4;
else for(int p=0;p<num;p++) if(c[p]>c[num]) ok++;
num++;
// cout<<num<<endl;
}
}
int sum=0;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(b[i][j]==a[i][j]||b[i][j]==0) continue;
int k=b[i][j];
sum+=abs(t_x[k]-i);
sum+=abs(t_y[k]-j);
}
}
ans=1e9;
for(int i=sum;i;i++){
dfs(s_x,s_y,sum,0,i,4);
if(ans!=1e9) break;
}
cout<<ans<<endl;
}
}
点击查看代码
#include<bits/stdc++.h>
using namespace std;
struct node{
int w,to,nxt;
}z[1000003];
int H[1000003];
int h[1000003];
int h_[1000004];
int cnt;
void add(int x,int y,int w){
z[++cnt].to=y;
z[cnt].nxt=h[x];
z[cnt].w=w;
h[x]=cnt;
}
void ADD(int x,int y,int w){
z[++cnt].to=y;
z[cnt].nxt=h_[x];
z[cnt].w=w;
h_[x]=cnt;
}
int vis[1000004];
int n,m,k;
int times[1000004];
typedef pair<int,int> pii;
typedef pair<int,pii> PII;
void dj(int s){
for(int i=1;i<=n;i++) vis[i]=0,H[i]=1e9;
priority_queue<pii,vector<pii>,greater<pii> > p;
H[s]=0;
p.push({0,s});
while(!p.empty()){
int x=p.top().second;
p.pop();
if(vis[x]) continue;
else{
vis[x]=1;
for(int i=h_[x];i;i=z[i].nxt){
int y=z[i].to;
if(H[y]>H[x]+z[i].w){
H[y]=H[x]+z[i].w;
p.push({H[y],y});
}
}
}
}
}
void A(){
priority_queue<PII,vector<PII>,greater<PII> > p;
p.push({H[n],{0,n}});
while(!p.empty()){
PII X=p.top();
p.pop();
int x=X.second.second;
int dis=X.second.first;
times[x]++;
if(x==1){
cout<<dis<<"\n";
if(times[1]==k) return ;
continue;
}
for(int i=h[x];i;i=z[i].nxt){
int y=z[i].to;
if(times[y]<k){
p.push({{z[i].w+dis+H[y]},{z[i].w+dis,y}});
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
add(u,v,w);
ADD(v,u,w);
}
dj(1);
// for(int i=1;i<=n;i++) cout<<H[i]<<endl;
A();
for(int i=times[1]+1;i<=k;i++) cout<<"-1\n";
}

A* 合集的更多相关文章

  1. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  2. 【Android】开发中个人遇到和使用过的值得分享的资源合集

    Android-Classical-OpenSource Android开发中 个人遇到和使用过的值得分享的资源合集 Trinea的OpenProject 强烈推荐的Android 开源项目分类汇总, ...

  3. [Erlang 0122] Erlang Resources 2014年1月~6月资讯合集

    虽然忙,有些事还是要抽时间做; Erlang Resources 小站 2014年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/   ...

  4. [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集

    Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地 ...

  5. SQL用法操作合集

    SQL用法操作合集   一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...

  6. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  7. Lucene搜索方式大合集

    package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...

  8. [Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集

    很多事情要做,一件一件来; Erlang Resources 小站 2013年1月~6月资讯合集,方便检索.      小站地址: http://site.douban.com/204209/     ...

  9. android 图像处理系列合集

    为了便于大家对滤镜算法的学习,以后发布的图像处理滤镜系列帖子会在这里汇总,本人第一次写合集,写得不好的地方大家请见谅,手头上虽然有一些滤镜的算法,但是大多不是android版的,教程里的代码大多是我借 ...

  10. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

随机推荐

  1. 【Python】读取写入INI文件

    最近,写个abaqus的python脚本,需要输入的item比较多,而且也有一些不经常修改但又可能要修改的option.如果都用abaqus的getinput()和getinputs()函数,那输入的 ...

  2. 关于我这周学习SQL注入的一些笔记:

    sql注入的原理: 通过恶意的SQL语句插入到应用的输入参数中,再在后台数据库服务器上解析执行的攻击.   Web程序的三层结构: 界面层( User Interface layer ) 业务逻辑层( ...

  3. Linux常用命令-练习记录

    具体命令 1.复制文件到指定目标,若目录不存在则创建目录 mkdir 和 cp 结合使用 mkdir ../dst/sh_test && cp sh_test/hello_os.sh ...

  4. 下载文件,后端返回的是文件流,我们需要请求并下载到本地,发现下载后打开只有个undefined

    在项目里做完上传,做下载的时候,把下载的文件打开,内容却时undefined,而且接口调用成功,但是postman校验接口时下载的文件正常的,那问题又出现在前端了. 我的前端代码如下图 前端代码的话我 ...

  5. Laravel MongoDB

    Laravel MongoDB This package adds functionalities to the Eloquent model and Query builder for MongoD ...

  6. 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)

    1.问题描述: 使用华为内置的MapComponent, 发现显示不出来.查看日志, MapRender底层有报错. 解决方案: 麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分. 1.一般没有 ...

  7. 基础指令:grep、wc、管道符( | )、head、tail、less、more、sort、uniq、Linux软件安装、重定向及

    目录 3.0 dd读取.转换并输出数据 3.1 压缩 (tar.zip).解压缩(tar xf.unzip) 3.2 ln软硬链接 3.2.1 软链接: 3.2.2 硬链接: 3.3 find文件查找 ...

  8. 基础命令:dd、tar、ln、find、逻辑符号、alisa别名、md5sun校验、lrzsz文件上传下载、wget

    目录 3.0 dd读取.转换并输出数据 3.1 压缩 (tar.zip).解压缩(tar xf.unzip) 3.2 ln软硬链接 3.2.1 软链接: 3.2.2 硬链接: 3.3 find文件查找 ...

  9. 递归--java进阶day08

    1.递归 2.案例 1.案例一 求出5的阶乘 我们会发现其中存在规律 我们先定义一个带返回值的方法,方便调用者使用 当给的数是1时,1的阶乘还是1,我们就可以直接返回 如果走了else,说明给的数不是 ...

  10. Quartz.NET - 教程 8: 调度器监听器

    译者注: 目录在这 Quartz.NET 3.x 教程 原文在这 Lesson 8: SchedulerListeners SchedulerListeners 跟 ITriggerListeners ...