zoukankan      html  css  js  c++  java
  • 【HHHOJ】ZJOI2019模拟赛(十五)03.17 解题报告

    点此进入比赛

    得分: (42+10+14=66)

    排名: (Rank 3)

    (Rating)(+53)

    (T1):【HHHOJ200】稗田的梦中之梦(点此看题面

    暴力(DFS)+上界限制,水到(42)(23333)

    只需在暴力(DFS)的过程中,加上一个限制每个点的经过次数不能超过(k)这样显然会错,但至少不会(TLE)

    没什么细节,直接上骗分代码吧:

    #include<bits/stdc++.h>
    #define Tp template<typename Ty>
    #define Ts template<typename Ty,typename... Ar>
    #define Reg register
    #define RI Reg int
    #define Con const
    #define CI Con int&
    #define I inline
    #define W while
    #define N 15
    #define K 7
    #define V 25000
    #define INF 1e9
    #define add(x) (!cnt[x]++&&++tot)
    #define del(x) (!--cnt[x]&&--tot)
    #define DFS(x,y,s,t) (a[x][y]&&add(a[x][y]),vis[x][y]=1,dfs(x,y,s,t),vis[x][y]=0,a[x][y]&&del(a[x][y]))
    using namespace std;
    const int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
    int n,m,k,tot,ans=INF,a[N+5][N+5],v[N+5][N+5],vis[N+5][N+5],cnt[V+5];
    I void dfs(CI x,CI y,CI s,CI t)//DFS
    {
    	if(s>k||t>=ans) return;if(!(tot^k)) return (void)(ans=t);//经过次数大于k就退出
    	for(RI i=0,nx,ny;i^4;++i)//枚举走的方向
    	{
    		if((nx=x+dx[i])<1||nx>n||(ny=y+dy[i])<1||ny>m||!~a[nx][ny]) continue;//如果超出边界或到达-1,跳过
    		vis[nx][ny]?(dfs(nx,ny,s+1,t),0):DFS(nx,ny,s+1,t+v[nx][ny]);//搜索
    	}
    }
    int main()
    {
    	RI i,j;for(scanf("%d%d%d",&n,&m,&k),i=1;i<=n;++i) for(j=1;j<=m;++j) scanf("%d",&a[i][j]);//读入数据
    	for(i=1;i<=n;++i) for(j=1;j<=m;++j) scanf("%d",&v[i][j]);//读入数据
    	for(i=1;i<=n;++i) for(j=1;j<=m;++j) ~a[i][j]&&DFS(i,j,0,v[i][j]);//搜索
    	return ans==INF?puts("-1"):printf("%d",ans),0;//输出答案
    }
    

    (T2):【HHHOJ201】阿求的Q(点此看题面

    完全不会。。。

    就水了(a_i=0)(10)分最小费用最大流。

    代码略。

    (T3):【HHHOJ202】狂言【不凋的竹之花】(点此看题面

    神仙题,但(kle2)(14)分还是很好骗的。

    考虑(k=1),删除环上的任意一条边或者不删边即可。

    考虑(k=2),略有些复杂,难以说清楚,但还是比较简单的。

    这好像又类似于一道著名的神仙(DZY)题。

    反正不会做。

  • 相关阅读:
    利用线程制作简单定时器
    VScode小白简介
    WebService介绍及C/C++访问
    Redis的C++与JavaScript访问操作
    Redis的安装配置及简单集群部署
    解决npm被墙的问题
    【学习整理】第三章 使用字符串
    【学习整理】第四章 字典
    【学习整理】第二章 列表和元祖
    【学习整理】第一章 基础知识部分 常用函数 简单语法
  • 原文地址:https://www.cnblogs.com/chenxiaoran666/p/HHHOJ_ZJOI2019_15.html
Copyright © 2011-2022 走看看