并不对劲的bjwc d4t1
先膜一波宽神Orz%%%%%

拿到这题的第一反应就是:暴力啊!感觉神奇的钟点并没有什么性质,可能卡常能过吧……所以就写了一个O(22^3*59^3)的暴力。本来想打表,但是发现代码长度有限制,写不下。写完后发现,总共只有127034种神奇的钟点,所以当k特别大时,直接输出-1就可以了。如果数据纯随机的话,2*10^9应该能骗过不少吧。然而这种并不对劲的思想显然是会被察觉的,虽然用尽各种方法卡常,但是并没有拿多少分。
下午听讲评时,宽神说:还能怎么做?暴力啊!
我:

事实上并不是神奇的卡常方法。这道题的正解竟然也是打表!不过要用到分段打表的技巧。因为可以发现,搜索时间时,已知前一个时间就可以递推出下一个时间。
这也就是说,暴力枚举可以从中间开始。这样就可以设定一个每段的大小k,只对排在第k,k*2,k*3等k的倍数打表,查询时从离查询的名次最近的表搜。这样就找到了暴力枚举(TLE)和打表(MLE或代码长度LE)的折中方法,分段打表(AC)。
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<iomanip>
using namespace std;
int h1;
int h2,h3,m1,m2,m3;
int tmp1,gdc;
int upl,dnl,upr,dnr;
int ch1[]={,,,,,,,,,,,,,,,};
int ch2[]={,,,,,,,,,,,,,,,};
int ch3[]={,,,,,,,,,,,,,,,};
int cm1[]={,,,,,,,,,,,,,,,};
int cm2[]={,,,,,,,,,,,,,,,};
int cm3[]={,,,,,,,,,,,,,,,,};
inline int read()
{
int x=,f=;
char ch=getchar();
while((!isdigit(ch))&&ch!='-')ch=getchar();
if(ch=='-'){f=-,ch=getchar(); }
while(isdigit(ch))x=x*+ch-'',ch=getchar();
return x*f;
}
inline void write(int x)
{
char ch[];int f=;
if(!x){putchar('');return ;}
if(x<){putchar('-');x=-x;}
while(x)ch[++f]=x%+'',x=x/;
while(f)putchar(ch[f--]);
}
inline void writen(int x)
{
char ch[];int f=;
if(!x){putchar('');return ;}
if(x<){putchar('-');x=-x;}
while(x)ch[++f]=x%+'',x=x/;
while(f)putchar(ch[f--]);
putchar('\n');
}
inline int gcd(int x,int y)
{
//cout<<"+";
if(x>y)swap(x,y);
if(x==)return y;
return gcd(y%x,x);
}
void print()
{
if(h1<)putchar('');
write(h1);
putchar(':');
if(m1<)putchar('');
write(m1);
putchar(' ');
if(h2<)putchar('');
write(h2);
putchar(':');
if(m2<)putchar('');
write(m2);
putchar(' ');
if(h3<)putchar('');
write(h3);
putchar(':');
if(m3<)putchar('');
writen(m3);
}
int main()
{
int t=read();
if(t>){writen(-);return ;}
int h4,m4;
h1=ch1[t/];
h2=ch2[t/];
h3=ch3[t/];
m1=cm1[t/];
m2=cm2[t/];
m3=cm3[t/];
int T=(t/)*-;
bool f=;
for(;h1<;++h1)
{
if(f)m1=;
for(;m1<;++m1)
{
if(f)h2=;
for(;h2<;++h2)
{
if(h1+h2>=)continue;
if(f)m2=;
for(;m2<;++m2)
{
if(f)h3=;
for(;h3<;++h3)
{
if(h1+h2+h3>=)continue;
if(f)m3=;
for(;m3<;++m3)
{
//print();
//if(m3==0){++T;continue;}
m4=m1+m2+m3;
h4=m4/;
m4=m4-h4*;
if(m4>= || (!m4))continue;
h4+=h1+h2+h3;
if(h4>=)continue;
if((!h4) && (!h1+h2+h3))
{
// cout<<h1<<",";
++T;
f=;
//
if(t==T)
{
print();
goto end;
}
// cout<<t<<endl;
continue;
}
tmp1=gcd(h4,m4);
upl=h4/tmp1;
dnl=m4/tmp1;
tmp1=gcd(m1,m2);gdc=m1*m2/tmp1;
tmp1=gcd(gdc,m3);dnr=gdc*m3/tmp1;
upr=h1*dnr/m1+h2*dnr/m2+h3*dnr/m3;
tmp1=gcd(upr,dnr);
upr=upr/tmp1;
dnr=dnr/tmp1;
//cout<<t<<endl;
if(upl==upr && dnl==dnr)
{
// cout<<h1<<",";
++T;
f=;
// cout<<t<<endl;
//
if(t==T)
{
print();
goto end;
}
// if(t%10000==0)cout<<t;
} }
}
}
}
}
}
end:return ;
}
//
并不对劲的人好菜啊。

并不对劲的bjwc d4t1的更多相关文章
- bjwc Day3 & 4 妈妈我这是来了个什么地方呀
真·bjwc开始了 Day3 T1啥啥啥 第k大斜率?想都没想码了个暴力,然后爆零...暴力都能错,退役 T2看着像网络流就扔了个网络流大暴力上去,六七十分的样子然后蜜汁wa T3题面说“想都没想就弄 ...
- bjwc Day0 大型签到日
1.18期末考试 1.19试卷讲评 1.20我开始了bjwc愉快的冬眠之旅 上午先是颁发noip一等奖 我在台下笑得像个没有一等奖的孩子/手动微笑 然后去机房试了一下机 坐在鸡神边上,键盘竟然是坏的, ...
- 并不对劲的BJOI2019
一些感想 现实并非游戏,并不支持反复刷关 猎人和防御工事一起被老山龙摧毁了: 猎人惨死雨中,结云村永无放晴之日: 猎人被狂龙病毒侵蚀,天空山上黑蚀龙泛滥. 好像这才是怪物猎人系列的真实结局呢 day ...
- 并不对劲的uoj276. [清华集训2016]汽水
想要很对劲的讲解,请点击这里 题目大意 有一棵\(n\)(\(n\leq 50000\))个节点的树,有边权 求一条路径使该路径的边权平均值最接近给出的一个数\(k\) 输出边权平均值下取整的整数部分 ...
- 并不对劲的DFT
FFT是一个很多人选择背诵全文的算法. #include<algorithm> #include<cmath> #include<complex> #include ...
- 并不对劲的字符串专题(三):Trie树
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 并不会讲Trie树. 1.poj1056-> 模板题. 2.bzoj1212-> 设dp[i]表示T长度为i的前 ...
- 并不对劲的字符串专题(二):kmp
据说这些并不对劲的内容是<信息学奥赛一本通提高篇>的配套练习. 先感叹一句<信息学奥赛一本通提高篇>上对kmp的解释和matrix67的博客相似度99%(还抄错了),莫非mat ...
- 并不对劲的bzoj1861: [Zjoi2006]Book 书架
传送门-> 这题的正确做法是splay维护这摞书. 但是并不对劲的人选择了暴力(皮这一下很开心). #include<algorithm> #include<cmath> ...
- 并不对劲的bzoj3932: [CQOI2015]任务查询系统
传送门-> 离线操作听上去很简单,遗憾的是它强制在线. 每个时刻可以看成可持久化线段树中的一个版本,而每一个版本的线段树维护的是值某一段区间且在这个版本对应的时刻出现的数之和. 会发现同一时刻可 ...
随机推荐
- Spring 实现 IoC
理解 “ 控制反转(IoC)” 控制反转(IoC):用白话来讲,就是由 Spring 容器控制程序中类与类之间的关系,而非传统实现中,由程序代码直接操控.这也就是所谓 “控制反转” 的概念所在:控 ...
- [Python3网络爬虫开发实战] 7-动态渲染页面爬取
在前一章中,我们了解了Ajax的分析和抓取方式,这其实也是JavaScript动态渲染的页面的一种情形,通过直接分析Ajax,我们仍然可以借助requests或urllib来实现数据爬取. 不过Jav ...
- 零基础入门学习Python(19)--函数:我的地盘听我的
知识点 函数与过程 在许多编程语言中,函数(function)是有返回值的,过程(procedure)是简单.特殊并且没有返回值的.而在Python中,严格来说只有函数没有过程. 例如: >&g ...
- DNS服务器原理简述、搭建主/从DNS服务器并实现智能解析
1. TLD:Top Level Domain 顶级域名 组织域:.com, .net, .org, .gov, .edu, .mil 国家域:.iq, .tw, .hk, .jp, .cn, ... ...
- Volume 1. String(uva)
10361 - Automatic Poetry #include <iostream> #include <string> #include <cstdio> # ...
- TensorFlow - 相关 API
来自:https://cloud.tencent.com/developer/labs/lab/10324 TensorFlow - 相关 API TensorFlow 相关函数理解 任务时间:时间未 ...
- Hdu 5274 Dylans loves tree (树链剖分模板)
Hdu 5274 Dylans loves tree (树链剖分模板) 题目传送门 #include <queue> #include <cmath> #include < ...
- os系统安装Python虚拟环境virtualenv和virtualenvwrapper
一.安装Python 上节已经讲了如何安装Python2和Python3 二.给Python3安装virtualenv 在终端输入:sudo pip3 install virtualenv 等待安装成 ...
- Python使用selenium实现网页用户名 密码 验证码自动登录功能
一.安装selenium 二.下载谷歌浏览器驱动 1.去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe( ...
- 关于.NET玩爬虫这些事 【初码干货】
这几天在微信群里又聊到.NET可以救中国但是案例太少不深的问题,我说.NET玩爬虫简直就是宇宙第一,于是大神朱永光说,你为何不来写一篇总结一下? 那么今天就全面的来总结一下,在.NET生态下,如何玩爬 ...