下午

预:60+100+30

实:30+30+30

T1水题(water)

T1写了二分图匹配

听说有70分,写挫了....

正解:贪心,按长度排序,

对于第一幅牌里面的,在第二个里面,找一个长度小于,高度最接近的牌

进行覆盖。

#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
int n;
multiset <int> s;
struct node {int x,y;} a[],b[];
int cmp(node i,node j) {return i.x<j.x;}
int main()
{
freopen("water.in","r",stdin);
freopen("water.out","w",stdout);
int T;
T=;
while(T--)
{
scanf("%d",&n);
for(int i=;i<n;i++) scanf("%d%d",&a[i].x,&a[i].y);
for(int i=;i<n;i++) scanf("%d%d",&b[i].x,&b[i].y);
sort(a,a+n,cmp);
sort(b,b+n,cmp);
s.clear();
int k=,ans=;
for(int i=;i<n;i++)
{
while(a[i].x>=b[k].x&&k<n)
{
s.insert(b[k].y);
k++;
}
if(s.empty())continue;
multiset<int>::iterator it=s.upper_bound(a[i].y);
if (it==s.begin()) continue; it--;
ans++; s.erase(it);
}
printf("%d\n",ans);
}
return ;
}

T2下午梦境(dream)

手推公式,推错了.....30

正解dp||爆搜

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int n,sum,ans,dp[][],DP[][],i,j,k,l;
int main()
{
freopen("dream.in","r",stdin);
freopen("dream.out","w",stdout);
scanf("%d",&n);
sum=int(log(n)/log()+0.000000001)+;
dp[][]=;
for (i=; i<sum; i++)
{
for (j=; j<=n; j++)
for (k=; k<=n; k++)
if (dp[j][k])
for (l=k+; l<=j+; l++)
DP[min(n,j+l)][l]+=dp[j][k];
for (j=; j<=n; j++) for (k=; k<=n; k++) {dp[j][k]=DP[j][k];DP[j][k]=;}
}
for (j=; j<=n; j++) ans+=dp[n][j];
cout<<sum<<' '<<ans;
return ;
}

T3动态规划(dp)

不会做30分爆搜

正解:

dp[i][j] 1~i 切了j刀,的最优解

dp[i][j]=min{dp[k][j-1]+sum(k+1,i)}

可以证明这个转移方程具有单调性,zhw说自己yy

20*n^2的简单dp -> 在固定j的情况下 随着i的增大,k不降 ,那么就可分治了

#include <cstdio>
#include <iostream>
#include <algorithm>
#define N 1000011
#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))
using namespace std;
int n, q, ans;
int f[N]; struct node
{
int x, y, z;
}p[N], t[N]; inline int read()
{
int x = , f = ;
char ch = getchar();
for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -;
for(; isdigit(ch); ch = getchar()) x = (x << ) + (x << ) + ch - '';
return x * f;
} inline bool cmp(node x, node y)
{
return x.z > y.z;
} inline int find(int x)
{
return x == f[x] ? x : f[x] = find(f[x]);
} inline bool check(int k)
{
int i, j, x, y, lmin, lmax, rmin, rmax;
for(i = ; i <= n + ; i++) f[i] = i;
for(i = ; i <= k; i++) t[i] = p[i];
std::sort(t + , t + k + , cmp);
lmin = lmax = t[].x;
rmin = rmax = t[].y;
for(i = ; i <= k; i++)
{
if(t[i].z < t[i - ].z)
{
if(find(lmax) > rmin) return ;
for(j = find(lmin); j <= rmax; j++)
f[find(j)] = find(rmax + );
lmin = lmax = t[i].x;
rmin = rmax = t[i].y;
}
else
{
lmin = min(lmin, t[i].x);
lmax = max(lmax, t[i].x);
rmin = min(rmin, t[i].y);
rmax = max(rmax, t[i].y);
if(lmax > rmin) return ;
}
}
// cout<<find(1)<<endl;
if(find(lmax) > rmin) return ;
return ;
} int main()
{
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
int i, x, y, mid;
n = read();
q = read();
for(i = ; i <= q; i++)
p[i].x = read(), p[i].y = read(), p[i].z = read();
x = , y = q;
//cout<<check(2)<<endl;
//return 0;
ans = q + ;
while(x <= y)
{
mid = (x + y) >> ;
if(check(mid)) ans = mid, y = mid - ;
else x = mid + ;
}
printf("%d\n", ans);
return ;
}

济南day1下午的更多相关文章

  1. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  2. 云栖大会day1 下午

    下午参与的是创新创业专场 会议议程是 创新创业专场-2018阿里云创新中心年度盛典 13:30-14:10 阿里双创新征程 李中雨 阿里云创业孵化事业部总经理 14:10-14:40 人货场的渗透与重 ...

  3. Day1下午解题报告

    预计分数:0+30+30=60 实际分数:0+30+40=70 T1水题(water) 贪心,按长度排序, 对于第一幅牌里面的,在第二个里面,找一个长度小于,高度最接近的牌 进行覆盖. 考场上的我离正 ...

  4. 北京DAY1下午

    省选模拟题 周子凯 题目概况 中文题目名 简易比特币 计算 路径 英文题目名 bit calculation Path 输入文件名 bit.in calculation.in path.in 输出文件 ...

  5. Day1下午

    T1 暴力50分 排A和B X,不用考虑X    用数组80分, 权值线段树.平衡树100, 一个函数? T2 打表  dp logn+1,+ 搜索,dp? txt..... T3 30分暴力和尽量均 ...

  6. 济南day1

    预计分数:100+100+30 实际分数:10+60+20 T1立方数(cubic) 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8, ...

  7. ZJOI2016二试+游记

    ...excited.... 一场打回原形爽哦. T1莫名爆到了10分,T2T3均没交,一个小时过后就没再拿任何分数,perfectly狗带了... 总之没有给自己充足的时间去敲暴力,ZJOI啊..拿 ...

  8. Noip2015总结

    Noip2015战役总结 [游记部分] Day0 考前说是可以放松一下,下午呢就在机房打了几盘杀,一起玩了玩狼人.不过晚上觉得还是要有点氛围了,于是稍稍打了几个模板,觉得正确率还不错,给自己一点自信的 ...

  9. 近期概况&总结

    下午考完英语的学考就要放假啦,是衡中的假期啊QAQ 所以灰常的激动,一点也不想写题(我不会告诉你其实假期只有一个晚上.. 自从CTSC&APIO回来之后就一直在机房颓颓颓,跟着zcg学了很多新 ...

随机推荐

  1. STM32CUBEMX入门学习笔记1:软件的简单介绍

    STM32CUBEMX是ST公司设计的一款免费软件,软件可以通过其官网下载.现在已经下载到.通过STM32CUBEMX可以完成从单片机选型,程序初始化,中断配置……工作.并生成对应的"HAL ...

  2. leetcode-18-remove

    283. Move Zeroes 解题思路: 从nums[0]开始,如果是零就和它后面的第一个非零数交换,不是零就下一位.不贴代码了,比较简单. 27. Remove Element 解题思路: 这道 ...

  3. C与C++接口相互调用

    转载于:http://blog.csdn.net/lincoln_2012/article/details/50801080 项目中经常使用C和C++混合编程,那么,在调用对方接口时,总是不可避免地出 ...

  4. PHP GD库---之微信朋友圈9张图

    $item_pic = "img/item.jpg"; list($width, $height) = getimagesize($item_pic); $item_pic = i ...

  5. Hadoop4.2HDFS测试报告之五

    第二组:文件存储读过程记录 NameNode:1 DataNode:1 本地存储 scp romotepath localpath 500 2 1 23.05 NameNode:1 DataNode: ...

  6. Flask-用户角色及权限

    app/models.py class Role(db.Model): __tablename__ = 'roles' id = db.Column(db.Integer, primary_key=T ...

  7. Java + golang 爬取B站up主粉丝数

    自从学习了爬虫,就想在B站爬取点什么数据,最近看到一些个up主涨粉很快,于是对up主的粉丝数量产生了好奇,所以就有了标题~ 首先,我天真的以为通过up主个人空间的地址就能爬到 https://spac ...

  8. TPS限流

    限流是高可用服务需要具备的能力之一 ,粗暴简单的就像我们之前做的并发数控制.好一点的有tps限流,可用令牌桶等算法实现.<亿级流量网站架构核心技术>一书P67限流详解也有讲.dubbo提供 ...

  9. 移动端click时间、touch事件、tap事件详解

    一.click 和 tap 比较 两者都会在点击时触发,但是在手机WEB端,click会有 200~300 ms,所以请用tap代替click作为点击事件. singleTap和doubleTap 分 ...

  10. XDEBUG 远程调试

    我的PHP环境是安装在虚拟机中.真机系统用的是windows.那么我要用XDEBUG调试代码,就得用XDEBUG的远程调试功能. 首先要给远程环境中安装XDEBUG扩展,具体方法:http://www ...