哈尔滨赛区热身赛 A题

2024-03-01 23:32
文章标签 赛区 哈尔滨 热身赛

本文主要是介绍哈尔滨赛区热身赛 A题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据量很小可以搜索,注意对u=1时要特殊处理,否则超时

#include<iostream>
#include<math.h>
using namespace std;
bool map[10][10];
int a[30],n,m,ans,time;
int s[7]={0,25,7,3,3,1};
int min(int x,int y)
{
  if (x<y) return x;
  else return y;
}
int sa(int u)
{
 int i,j,c;
 c=0;
 for(i=u;i>=1;i--)
 {
   for(j=1;j<=a[i];j++)
   {
 c++;
    if (c>=s[i]) return c;
   }
 }
 return 1000;
}
bool judge()
{
  int i,j;
  for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
     if (!map[i][j]) return false;
   return true;  
}
void oper(int x,int y,int u)
{
  int i,j;
  u--;
  for(i=-u;i<=u;i++)
   for(j=-u;j<=u;j++)
    if ( (abs(i)+abs(j)<=u) && (x+i>=1) && (x+i<=n) && (y+j>=1) && (y+j<=m)  )
      map[x+i][y+j]=true;
}
int need()
{
 int sum,i,j;
 sum=0;
 for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
 if (!map[i][j]) sum++;
 return sum;
}
int dfs(int u,int v)
{
   int i,j,k,temp[10][10],s,t,g;
   bool fl;
   ans=min(ans,sa(u));
  // if (time>1000) return 0;
   //time++;
    //if (judge())
 //  ans=min(ans,v);
   if (u==1)
   {
    g=need();
 if (g>a[u]) return 0;
 else
 {
      ans=min(ans,g+v);
   return 0;
 }
   }
   if (v>ans) return 0;
   while((a[u]==0)&&(u>0)) u--;
   if (u==0) return 0;


   fl=true;
for(i=1;i<=n;i++)
 for(j=1;j<=m;j++)
   temp[i][j]=map[i][j];


   for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
     if (!map[i][j])
 {
     fl=false;
  oper(i,j,u);
  a[u]--;
  if (judge())
   ans=min(ans,v+1);
   else
     dfs(u,v+1);
  a[u]++;
  for(s=1;s<=n;s++)
      for(t=1;t<=m;t++)
        map[s][t]=temp[s][t];
 }
if (fl) if (v<ans) ans=v;

  
}
int main()
{
  int k,i,t,u,v,maxu,time;
  while(cin>>n>>m>>k)
  {
    memset(map,false,sizeof(map));
 memset(a,0,sizeof(a));
 maxu=0;time=0;
 for(i=1;i<=k;i++)
 {
     cin>>u>>v;
     a[u]+=v;
  if (u>maxu) maxu=u;
 }
 if (maxu>=5) cout<<"1"<<endl;
 else
 {
 ans=1000;
 dfs(maxu,0);
 if (ans==1000) cout<<"impossible"<<endl;
  else cout<<ans<<endl;
 }
  }

}

这篇关于哈尔滨赛区热身赛 A题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764191

相关文章

哈理工新生赛热身赛解题报告

本次热身赛6道题目,由于没有官方解题报告,自己写了一个山寨版的解题报告,希望对学弟学妹有所帮助 期中两到签到题该校OJ上没有挂出,我在田大神的帮助下a掉了其它四题,解题报告如下所示 线段 Time Limit: 1000 MSMemory Limit: 32768 K Total Submit: 10(6 users)Total Accepted: 7(6 users)Rating: S

2014年ACM/ICPC亚洲区现场赛广州赛区总结

本来不想提这件事的,后来学姐找我谈心时提到这件事,我突然意识到在这件事情上我错了一次,明明答应的去参加这场比赛,最后临时决定不去......其实中间有很多很多原因 1:我和tyh,sxk临时不去主要是广州太远,我们身上money不够,呵呵。。。别笑我们,你以为我们是高富帅啊,去一趟广州消费要2个月的生活费,奖学金又没发,你让我找我妈要她辛辛苦苦挣来的工资吗?!从哈尔滨到广州单来回的火车票每个人就

上海邀请赛之热身赛2_2013成都邀请赛

先写总结。 感觉这次跟scf和sjc组队有种瞬间碉堡了的感觉,虽然是临时组建的队伍凑齐准备去上海参加邀请赛,从这次比赛磨练配合。 今天比赛难度比前天那次的难度低,感觉更适合我们来练习。 话说好像比赛提早了5分钟,我们三个人都不知道,五分钟后一看A题学长已经A了,一想肯定特水。。。我就没看题,sjc和scf两个看了题,scf就开始敲了,我刚开始负责翻译题,虽然我英语是个渣渣。。。没办法,没翻译

[CISCN2019 华东南赛区]Web111

考点: xff ssti 打开看到页面存在IP和XFF,右上角是咱们自己的IP 看到现在,可以想到尝试一下xff,当我们bp抓包后,添加xff,我们可以发现右上角的Current IP发生了变化,并且当我们输入什么他就会变成什么,这时候就应该想到ssti注入了 进行注入发现是Smarty 模板注入(好像页面下面也有提示"Bulid with Smarty",……不过没关系),可以

【构造共轭函数+矩阵快速幂】HDU 4565 So Easy! (2013 长沙赛区邀请赛)

【题目链接】 :click here~~ 【题目大意】:  A sequence Sn is defined as: Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate Sn.   You, a top coder, say

哈尔滨金融行业安全的坚固基石:等保测评的作用

在信息化与数字化的浪潮下,金融行业面临着前所未有的挑战与机遇。哈尔滨,作为东北地区重要的金融中心,其金融行业的信息安全直接关系到区域经济的稳定与发展。在此背景下,信息安全等级保护测评(简称“等保测评”)成为提升哈尔滨金融行业安全水平的关键策略,以下将详细阐述其重要性与作用。 一、等保测评:合规与安全的双重保障等保测评是依据国家相关法律法规及行业标准,对信息系统进行分级、评估与认证的过程。对于哈尔

哈尔滨等保测评流程

哈尔滨的等保测评程序是一项严格的、系统化的检测程序,其目的在于保证信息系统的安全、稳定。下面详细介绍了这个过程: 一、引言 随着信息技术的飞速发展,信息系统在各行各业中的应用越来越广泛,信息安全问题也日益凸显。为了保障信息系统的正常运行和数据安全,哈尔滨等地积极推行等保测评制度,以科学的方法和标准对信息系统进行安全评估。 二、等保测评流程概述 等保评估的程序主要由定级、备案、初

2024全国大学生信息安全竞赛(ciscn)半决赛(西南赛区)Pwn题解

前言 前两天把华南赛区和东北赛区的Ciscn半决赛题目复现完了。 最近西南赛区半决赛也刚刚结束,找师傅要了Pwn题目,复现一下。 Pwn1-vuln 比较有意思的题目,构造很巧妙,call的函数地址指向栈顶变量地址。 使得我们可以构造16字节的read的shellcode实现任意大小shellcode读取。 逆向分析 签到题,程序逆向很简单,挺有意思的一个题目。拖入IDA分析:

hdu 2014西安赛区网络赛 5011Game

一做网络赛就感到压力十足  挤进前90  压力山大啊。。。  Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 72    Accepted Submission(s): 56 Problem Descripti

信息科学与工程学院第五届大学生程序设计竞赛——热身赛

A:X星人的地盘 题目描述 一天,X星人和Y星人在一张矩形地图上玩抢地盘的游戏。 X星人每抢到一块地,在地图对应的位置标记一个“X”;Y星人每抢到一块地,在地图对应的位置标记一个“Y”;如果某一块地无法确定其归属则标记一个“N”。 最终统计谁拥有的地盘最大,即统计“X”和“Y”的个数。如果“X”的个数多,则说明X星人的地盘更大,输出“X win”;反之,如果Y星人的地盘更大,则输出“Y win