【NOIP2012普及组】寻宝
这道实际难度入门的题做得真™要麻烦死我,由于摸不到电脑,在大脑里调了3天都翻不转!!
思路:暴力模拟(这是基础,单纯暴力据说会全部TLE)+取模优化(这样时间复杂度骤降到O(NM))。
AC代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,t,a[][],able[],start,ans,p;
bool sign[][];
int main()
{
scanf("%lld%lld",&n,&m);
for(long long i=; i<=n; i++)
for(long long j=; j<m; j++)
{
scanf("%lld%lld",&t,&a[i][j]);
sign[i][j]=t;
if(sign[i][j])able[i]++;
}
scanf("%lld",&start);
long long j=start;
for(long long i=; i<=n; i++)
{
ans+=a[i][start];
p=a[i][start]%able[i];
if(p==)p=able[i];
while()
{
if(sign[i][j])p--;
if(!p)break;
j++;
if(j==m)j=;
}
start=j;
}
ans=ans%;
printf("%lld",ans);
return ;
}
真™不容易
核心优化:
p=a[i][start]%able[i];
用start表示某一层楼的起点房间编号,able[]表示某一层具有楼梯的房间的数量,这句优化能够mod运算大大降低时间复杂度,比如:
某层楼有3个具有楼梯的房间,然而start房间的木牌上x=10000,暴力模拟需要走10000次,然而10000%3=1,走1次就可以了。
其实优化不是重点
关键是调对用于模拟的循环!
while()
{
if(sign[i][j])p--;//sign[][]是bool类型,记录房间是否具有楼梯
if(!p)break;
j++;
if(j==m)j=;//模拟环形楼道
}
别忘了开long long
AC代码第一次提交拿了20分因为没看见答案要%20123
【NOIP2012普及组】寻宝的更多相关文章
- NOIP2012 普及组 寻宝
题目描述 Description 传说很遥远的藏宝楼顶层藏着诱人的宝藏.小明历尽千辛万苦终于找到传说中的这个藏宝楼,藏宝楼的门口竖着一个木板,上面写有几个大字:寻宝说明书.说明书的内容如下: 藏宝楼共 ...
- NOIP2012 普及组真题 4.13校模拟
考试状态: 我今天抽签看了洛谷的… 这我能怂???凶中带吉,我怕考试??我!不!怕! 看着整个机房的男同学们,我明白我是不会触发我的忌了.很好,开刷. A. [NOIP2012普及组真题] 质因数分解 ...
- NOIP2012 普及组 T3 摆花——S.B.S.
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
- NOIP2012普及组 (四年后的)解题报告 -SilverN
本章施工仍未完成 现在的时间是3.17 0:28,我困得要死 本来今天(昨天?)晚上的计划是把整个四道题的题解写出来,但是到现在还没写完T4的高效算法,简直悲伤. 尝试了用floyd写T4,终于大功告 ...
- [Noip2012普及组]摆花
Description 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号.为了在门口展出更多种花,规定 ...
- 洛谷P1077 [NOIP2012普及组]摆花 [2017年四月计划 动态规划14]
P1077 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能 ...
- [NOIP2012] 普及组
寻宝 大模拟 #include<iostream> #include<cmath> #include<algorithm> using namespace std; ...
- noip2012普及组——质因数分解
[问题描述]已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数. [输入]输入文件名为 prime.in.输入只有一行,包含一个正整数 n. [输出]输出文件名为 prime.out.输出只 ...
- 【NOIP2012普及组】质因数分解
P1075 质因数分解 假期第一天就给一道入门难度的题写题解…… 这道题一开始就被我想复杂了:埃式筛,欧拉筛……然而开一个1e9的数组?不现实. 直到看到题解区的dalao用唯一分解定理: 算术基本定 ...
随机推荐
- 论文阅读笔记(二十)【AAAI2019】:Spatial and Temporal Mutual Promotion for Video-Based Person Re-Identification
Introduction (1)Motivation: 作者考虑到空间上的噪声可以通过时间信息进行弥补,其原因为:不同帧的相同区域可能是相似信息,当一帧的某个区域存在噪声或者缺失,可以用其它帧的相同区 ...
- CVE-2019-1388 UAC提权复现
0x01 前言 该漏洞位于Windows的UAC(User Account Control,用户帐户控制)机制中.默认情况下,Windows会在一个单独的桌面上显示所有的UAC提示--Secure D ...
- pyqt5-进度条控制
1.基于自定义类的方式 继承自QProgressBar类,然后重写timerEvent方法,当该组件设置定时器的时候,会自己处理定时的处理方法,完成相应的功能 from PyQt5.Qt import ...
- vsftp安装及配置
一.安装Vsftp 1,安装 yum install vsftpd -y
- Spring-Cloud微服务踩坑
@feignclient和@requestmapping混用的时候出错 重写springmvc扫描controller时不带有@feignclient才实例化 @Configuration @Cond ...
- 安装jupyter使用notebook
安装jupyter pip3 install jupyter --default-timeout=1000 -i https://pypi.tuna.tsinghua.edu.cn/simple 使用 ...
- 金蝶云星空Python案例地址
https://club.kingdee.com/forum.php?mod=viewthread&tid=1235461
- Git和TortoiseGit
1.简介 Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目.它采用了分布式版本库的方式,不必服务器端软件支持. 2.Git和Svn的区别 1.Git 是分布式的,SVN 不是 ...
- The sklearn preprocessing
Recently, I was writing module of feature engineering, i found two excellently packages -- tsfresh a ...
- 假期学习【十一】Python切词,以及从百度爬取词典
今天主要对从CSDN爬取的标题利用jieba(结巴)进行分词,但在分词过程中发现,如大数据被分成了大/数据,云计算被分隔成了云/计算. 后来又从百度百科--->信息领域爬取了相关词语作为词典,预 ...