ctsc2018
day1:
8:20分还不知道考场在哪给ccf差评
8:30开始看题
第一题感觉是个模拟啊 很烦
瞄了一眼第二题第三题题意挺简单的啊感觉还不错
然后开始仔细看t1
然后我发现好像可以退狮子 应该是个数学题
推了半个小时的式子 我发现这个就是(a1+a2...+an)/1+(循环和x1x2)/2+...
然后以为自己很机智的开始dp了
发现是个背包
可以cdq分治一下 就是n^2logn
然后花了2:30 搞完了t1
出考场后立马觉得我是个傻逼
出成绩后就觉得更加傻逼了
然后看t3
前10分暴力dfs
20pits暴力+判重吧
然后我觉得可能还有几分可以搞
打了表看了一下还有5分是2^n
在后面的规律我好像不太看得出来 就弃疗了
(事实证明还是正确的然而并没什么用)
开始看t2
啊送50分么??
我仔细算了一波?? 这是卡n^2logn的节奏啊
lca可以O(1)??
想了一下就否定了。。(啊啊啊我怎么没学过离线o(1)啊)
然后想了半个小时
发现可以f[x][y]记录一下
以为做出来了
发现空间又炸了
然后我机智(傻逼)的发现可以只记录一半
然后开始码 码了半个小时 发现空间依旧会炸
离考试结束还有半个小时
我去 坑啊 后面链显然可以搞的分我还没想啊 哎
以防爆0 我决定写稳一点的倍增lca
然后10分钟写完通过样例找了两个错就过了大样例
出考场就发现凉了
day1t1 那个傻逼dp人人都会啊 推什么傻逼dp式子啊
还有背包可以直接还原啊 你还多一支log
day1t2 你不会O(1)你写树剖照样跑的飞快啊??
dayt3 也没什么好说的 反正我水平也就这么点了
说好的3点出成绩
4点才出
t1果然炸了70,t2 30,t3 25
然后我听说t1 cdq能过??
进去看了一番代码
我日 我把l=l+1 写成 mid=l+1 这不是炸成暴力么???
感觉100 45 25人人都会
day2:
宾馆里呆了一天,集训队答辩估计我也听不懂就不去了
晚上莫名开始做noi2017d1t1
压位+线段树我会啊。。
我想试下裸的能拿多少分
写完发现提交上去莫名wa
原来我有个特判导致范围少了1-2 所以要把最大范围+2
然后发现 我就卡在了56
看了一波别人发现有人裸的线段树70啊。。
发现有两个点被卡空间,两个点被卡时间(还有的点可能不是给裸线段树拿的)
和室友讨论了一波并不是很理解。。
就睡觉了
updata day3:仔细看了一下发现对于最后一层不用记录它的最小0/1位置啊
这种空间/2啊 。。。好简单好有用啊。。。
day3:
听说有题答本来挺开心的。。。然后 就因为这题凉了。。
t1巨水啊。。。
先看暴力 二分就下暴力判断
然后我害怕做不出来看了两档部分分
印象好像一档乱搞一档也是主席树吧
然后我想了一下正解发现是个傻逼题主席树
第一维按美味,第二维按价格排一下
半个小时写完今天感觉不错啊
一发过了2个小样例
哎呀a了a了
大样例一测 wtf??
wa了无数个点
有点方啊
肉眼看了3遍无果好吧我写对拍
30分钟写完对拍
拍拍拍 拍不出来啊
又拍拍拍 还是拍不出
啊拍出来了 我去我数据生成器生成了0
不符合题目要求
再改再拍。。。。。
到11:20 啊我拍出来了
搞出数据调调调 啊过了
再测大样例 我日??? 又wa 还是一片
又拍拍拍了20分钟
我去怎么还是这里错 ??? 再改终于过了大样例
啊已经11:40了
看t2 看了10分钟题目看不懂啊???
zhx路过,正好问了一波题目哦原来,是用来分割数字的啊
啊我好像会打20暴力啊??
啊我好像会打链啊???
然后想了一下好像很对啊开始打
这暴力有点难打啊?? 判断起来好麻烦啊
直接打链吧??
我日规则怎么可以加,的????
然后t2就这么爆零了
开题答
我日怎么只有一个小时多一点了啊啊??
看懂题目花了10分钟。。研究那个判断器花了10分钟。。
还有40分钟
我想了一下我好像不太会自己计算它花费时间。。。
就算会可能这点时间也码不出来了吧
爬山用不了了
那就手玩吧。。。
应该这种题最高分也就40吧(事实就是这在扯淡)
手玩了20多分钟第1个点,啊233333333 a了啊???
开始玩第二个点,乱搞了一波拿了4分
然后 好像每个点都有送分啊
离结束还有15分钟
写了个程序随机了一波 然后发现还有10分钟
我随便挑了个点看看
发现随机的有3分啊???
我点开数据一看 我日这他妈不是链么
那dp随便搞啊???
然后 考试就结束了
开始意识到后面的点可能就是傻逼
出来交流了一下发现t3各种爬山最少的也有40。。
凉了凉了
最后70 30 25 100 0 27=252
可能比ag低10-20左右吧
其实拿满很可能就有au吧
100 45(+20)25 100 0 50(+10)
贴一下t1

#include <bits/stdc++.h>
using namespace std;
#define IL inline
#define rint register int
#define ll unsigned long long
const int N=2e5+1e4;
const int N2=1e5+100;
struct re{
int a,b,c;
}a[N];
int ph[N*20],pt[N*20],root[N],n,m;
ll pnum[N*20],pcost[N*20],g,l;
int cnt;
IL bool cmp(re x,re y)
{
return(x.a<y.a);
}
#define mid ((h+t)>>1)
void insert(rint last,rint &now,rint k,rint h,rint t)
{
now=++cnt;
if (h==t)
{
pcost[now]=a[k].b; pnum[now]=pnum[last]+a[k].c; return;
}
ph[now]=ph[last]; pt[now]=pt[last];
pcost[now]=pcost[last]+1ll*a[k].b*a[k].c;
pnum[now]=pnum[last]+a[k].c;
if (a[k].b<=mid) insert(ph[last],ph[now],k,h,mid);
else insert(pt[last],pt[now],k,mid+1,t);
}
bool query(rint last,rint now,rint h,rint t,ll g,ll l)
{
if (h==t)
{
if (l<=pnum[now]-pnum[last]&&l*pcost[now]<=g) return(1); else return(0);
}
ll tj=pnum[ph[now]]-pnum[ph[last]],hf;
if (mid!=h) hf=pcost[ph[now]]-pcost[ph[last]];
else hf=(pnum[ph[now]]-pnum[ph[last]])*pcost[ph[now]];
if (tj>=l)
return(query(ph[last],ph[now],h,mid,g,l));
else
{
if (g>=hf) return(query(pt[last],pt[now],mid+1,t,g-hf,l-tj));
else return(0);
}
}
IL bool check(rint x)
{
if (query(root[x-1],root[n],1,N2,g,l)) return(1);
else return(0);
}
int main()
{
freopen("juice.in","r",stdin);
freopen("juice.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
for (rint i=1;i<=n;i++) cin>>a[i].a>>a[i].b>>a[i].c;
sort(a+1,a+n+1,cmp);
for (rint i=1;i<=n;i++)
insert(root[i-1],root[i],i,1,N2);
for (rint i=1;i<=m;i++)
{
//ll g,l g rmb l sheng
cin>>g>>l;
rint h=1,t=n;
while (h<t)
{
rint mid2=(h+t+1)/2;
if (check(mid2)) h=mid2; else t=mid2-1;
}
if (h==1&&!check(1)) cout<<-1<<endl;
else cout<<a[h].a<<endl;
}
// cout<<cnt<<endl;
return 0;
}

ctsc2018的更多相关文章
- LOJ2557. 「CTSC2018」组合数问题
LOJ2557. 「CTSC2018」组合数问题 这道题是我第一道自己做完的题答题.考场上面我只拿了41分,完全没有经验.现在才发现其实掌握了大概的思路还是不难. 首先模拟退火,通过了1,2,6,9, ...
- 【CTSC2018】暴力写挂(边分治,虚树)
[CTSC2018]暴力写挂(边分治,虚树) 题面 UOJ BZOJ 洛谷 题解 发现第二棵树上的\(LCA\)的深度这玩意没法搞,那么枚举在第二棵树上的\(LCA\). 然后剩下的部分就是\(dep ...
- [CTSC2018]暴力写挂——边分树合并
[CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离. 解决多棵树的问题就是降维了. 经典的做法是边分 ...
- BZOJ5343[Ctsc2018]混合果汁——主席树+二分答案
题目链接: CTSC2018混合果汁 显然如果美味度高的合法那么美味度低的一定合法,因为美味度低的可选方案包含美味度高的可选方案. 那么我们二分一个美味度作为答案然后考虑如何验证? 选择时显然要贪心的 ...
- loj#2552. 「CTSC2018」假面
题目链接 loj#2552. 「CTSC2018」假面 题解 本题严谨的证明了我菜的本质 对于砍人的操作好做找龙哥就好了,blood很少,每次暴力维护一下 对于操作1 设\(a_i\)为第i个人存活的 ...
- CTSC2018&APIO2018游记
CTSC2018&APIO2018游记 Day 0 傍晚出发,从长沙通往帝都的软卧哟. 然而长沙某中学坐高铁比我们晚出发还早到 Day 1 为了正经地写游记我决定忍住不在博客里吐槽酒店. 午饭 ...
- [Bzoj]5343: [Ctsc2018]混合果汁
5343: [Ctsc2018]混合果汁 题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 \(n\) 种果汁,编号为 \(0,1,\cdots,n-1\) .\(i\) 号果汁的美味度 ...
- BZOJ5340: [Ctsc2018]假面
BZOJ5340: [Ctsc2018]假面 https://lydsy.com/JudgeOnline/problem.php?id=5340 分析: 背包,只需要求\(g_{i,j}\)表示强制活 ...
- [LOJ#2553][CTSC2018]暴力写挂
[LOJ#2553][CTSC2018]暴力写挂 试题描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = ...
- CTSC2018 & APIO2018 颓废 + 打铁记
CTSC2018 & APIO2018 颓废 + 打铁记 CTSC 5 月 6 日 完美错过报道,到酒店领了房卡放完行李后直接奔向八十中拿胸牌.饭票和资料.试机时是九省联考的题,从来没做过,我 ...
随机推荐
- 单源最短路径问题(dijkstra算法 及其 优化算法(优先队列实现))
#define _CRT_SECURE_NO_WARNINGS /* 7 10 0 1 5 0 2 2 1 2 4 1 3 2 2 3 6 2 4 10 3 5 1 4 5 3 4 6 5 5 6 9 ...
- Neo4j安装&入门&一些优缺点
本篇将介绍Neo4j的安装,入门,和自己使用了一段时间后发现的优点缺点,争取简洁和实用. 如果你是第一次接触Neo4j,并且之前也都没接触过类似的Graph Database的话,建议先浏览一下我之前 ...
- 20155334 2016-2017-2 《Java程序设计》第五周学习总结
20155334 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章:异常处理 Java中所有错误都会被打包为对象,在编程的时候会遇到因各种原因而导致的错 ...
- Gitlab8.5安装后邮件发送不成功的解决过程
Gitlab安装成功有,注册邮件一直接收不到也是很生气,修改了 /etc/gitlab/gitlab.rb文件 gitlab_rails['smtp_enable'] = truegitlab_rai ...
- linux 链接理解
1.软链接 只包含另外软链接的基本信息, 生成与源文件不同的节点号, 可以链接目录.不同网络的文件 2.硬链接只能链接文件,不会生成节点号,说白了就是指针,指向同个文件,所以链接的节点号与源节点号一致
- script标签中type为"text/x-template"或"text/html"
写过一点前端的都会碰到需要使用JS字符串拼接HTML元素然后append到页面DOM树上的情况,一般的写法都是使用+号以字符串的形式拼接,如果是短点的还好,如果很长很长的话就会拼接到令人崩溃了. 比如 ...
- python 历险记(二)— python 的面向对象
目录 前言 类和对象 如何定义和实例化类? 如何定义和使用属性? 什么是方法? 静态方法和普通方法 构造函数该怎么写? str 方法怎么写? 多态是什么? 继承性和 java 是一样的吗? 父类和子类 ...
- 连接Linux服务器操作Oracle数据库
连接Linux服务器操作Oracle数据库 由于项目已经上线,现场的数据库服务器不允许直接用Oracle的客户端plsqldev.exe来连接,只能通过Linux服务器的命令来操作. 以下是用Se ...
- windows下解压zip包,包含中文解析
#coding=utf8 import os import zipfile import sys,locale # 本来以为需要,结果不需要 # def p(f): # #print '%s.%s() ...
- PYTHON-面向对象 类 绑定方法
面向对象三大特性(*****) 1继承 1. 什么是继承 继承是一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类/基类/超类 继承与现实生活中的继承一个意思 (例如 小明继承小明他爹 ...