首页 > 其他分享 >C - Make Takahashi Happy

C - Make Takahashi Happy

时间:2023-03-14 17:37:27浏览次数:42  
标签:15 cout int Make nc vis nr Happy Takahashi

题目大意:左上角走到右下角,经过的路径权值连起来不能有重复,把没有重复的路径的条数加起来输出。

我自己写的时候也磕磕绊绊,主要是自己模拟一边,理明白了就好了

#include <iostream>
#include <bits/stdc++.h>
#include <map>
#include <cstring>
using namespace std;
int dr[2]={0,1};
int dc[2]={1,0};
int a[15][15];
int vis[15];
int node[15][15];
int h,w;
int ans=0;
int k=2;
map<int,int>mp;
bool pan(int x,int y){
if(x<1||x>h||y<1||y>w)return false;
else return true;
}
void dfs(int x,int y){
if(x==h&&y==w){
int flag=1;
for(int i=1;i<=h+w-1;i++){
mp[vis[i]]=0;
}
for(int i=1;i<=h+w-1;i++){
mp[vis[i]]++;
if(mp[vis[i]]>1)flag=0;
}
if(flag==1)ans++;
// memset(vis,0,sizeof(vis));
vis[1]=a[1][1];
return ;
}
for(int i=0;i<2;i++){
int nr=x+dr[i];
int nc=y+dc[i];
if(pan(nr,nc)&&node[nr][nc]==0){
node[nr][nc]=1;
vis[k]=a[nr][nc];

k++;
dfs(nr,nc);
k--;
vis[k]=0;
node[nr][nc]=0;
}
}

}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>h>>w;
for(int i=1;i<=h;i++){
for(int j=1;j<=w;j++){
cin>>a[i][j];
}
}
// cout<<a[1][1]<<endl;
// for(int i=1;i<=h;i++){
// for(int j=1;j<=w;j++){
// cout<<a[i][j]<<" ";
// }
// cout<<endl;
// }
//
vis[1]=a[1][1];
dfs(1,1);


cout<<ans;
return 0;
}

标签:15,cout,int,Make,nc,vis,nr,Happy,Takahashi
From: https://www.cnblogs.com/saulgoodman1/p/17215668.html

相关文章

  • 【转】Golang Reflect反射的使用详解1 --- makeFunc的使用
     转,原文: https://studygolang.com/articles/12300 ---------------------------------- Whatyouarewastingtodayistomorrowforthosewhodiedyesterday......
  • Centos7系统编译安装cmake-3.7.2
    简介1、移除原来的cmake版本yumremovecmake-y2、下载cmake-3.7.2.tar.gz安装包并解压wgethttps://cmake.org/files/v31、移除老版本cmake版本并安装依赖包 yumremove......
  • makedown写作超方便的图片使用方式
    为什么需要Github图床写makedown用图片的时候总是在上传图床的时候,以及使用图片链接的时候会感觉有一些麻烦!我以前使用的是,github图床通过手动git上传,然后自己再一个个......
  • qt6CMake构建文件解释
    cmake_minimum_required(VERSION3.5)#用于构建CMake项目CMake最低版本project(01friststudyVERSION0.1LANGUAGESCXX)#通过project命令配置项目信息,就是版本简述......
  • CMake学习
    cmake_minimum_required(VERSION3.16)project(cmake_test)set(CMAKE_CXX_STANDARD17)#头文件搜索路径include_directories(${PROJECT_SOURCE_DIR}/includes/facer......
  • seata can not get cluster name in registry config please make sure registry conf
    问题描述使用seata1.6.1,配合dubbo3,以及nacos22023-03-1012:11:15ERRORio.seata.core.rpc.netty.NettyClientChannelManager181reconnect-cannotgetclusternam......
  • Makefile 规则
    1.make后面不带参数默认执行的是第一个目标,而不是default,如下:$make===test===$catMakefiletest:@echo"===test==="default:@echo"===defaul......
  • Makefile编程基础
    一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至......
  • Echarts图表效果图(Make A Pie替代)
    Echarts图表效果图(MakeAPie替代)MakeAPie是由社区贡献者维护的用于ApacheECharts作品分享的第三方非官方社区。平时做Echarts图表经常需要用到,近期官方已经关闭,找到......
  • makefile
    当前目录下所有.cpp文件编译为-o文件最后生成main.exeCXX=g++TARGET=mainSRC=$(wildcard*.cpp)OBJ=$(patsubst*.cpp,-o,$(SRC))CXXFLAGS=-c-Wall$(TARGET):$(......