CF576C Points on Plane 构造
正解:构造
解题报告:
先放下传送门趴QAQ
话说我jio得这题好玄学啊,,,就是,我实在觉得我这题做得完美无缺了?可就是过不去,,,而且它告诉我的奇异错误是"wrong output format Unexpected end of file - int32 expected "我当场就爆哭出来了趴QAQ连错6次正确率啪叽啪叽掉啊QAQ
不管,不想做这题了,决定来摸下鱼把题解给写了QAQ
看到这题,自然而然就会想到,莫队,对趴
对它其实就是个,莫队的最前面的那个分块
正确性我不会分析但是根据我们之前学的莫队的芝士,莫队的时间复杂度是O(n√n),那么放这题就是1e9刚好卡着过
要注意一下的是我们还可以优化一点儿
就是如果单纯x单调增排然后内部y单调增排是不欧克的,会增加1e9
所以可以,奇偶块内部分别y单增单减排
没了
所以我到底哪里错了啊呜呜呜,,,一个月没碰电脑不会打莫队的老年选手是我了QAQ
放个代码趴QAQ
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) const ll N=;
ll n,lth;
struct nod{ll x,y,id,bl;}gg[N]; inline ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
inline bool cmp1(nod gd,nod gs){return gd.x<gs.x;}
inline bool cmp2(nod gd,nod gs)
{
if(gd.bl!=gs.bl)return gd.bl<gs.bl;
if(gd.bl&)return gd.y<gs.y;
return gd.y>gs.y;
} int main()
{
n=read();rp(i,,n)gg[i].x=read(),gg[i].y=read(),gg[i].id=i;
lth=sqrt(n);sort(gg+,gg++n,cmp1);rp(i,,n)gg[i].bl=(i-)/lth+;
sort(gg+,gg++n,cmp2);
rp(i,,n)printf("%lld ",gg[i].id);
return ;
}
CF576C Points on Plane 构造的更多相关文章
- codeforces 577E E. Points on Plane(构造+分块)
题目链接: E. Points on Plane time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 构造 - Codeforces Round #319 (Div. 1)C. Points on Plane
Points on Plane Problem's Link Mean: 在二维坐标中给定n个点,求一条哈密顿通路. analyse: 一开始忽略了“无需保证路径最短”这个条件,一直在套最短哈密顿通路 ...
- 题解 CF576C 【Points on Plane】
题解 CF576C [Points on Plane] 一道很好的思维题. 传送门 我们看这个曼哈顿距离,显然如果有一边是按顺序排列的,显然是最优的,那另一边怎么办呢? 假如你正在\(ioi\)赛场上 ...
- Codeforces Round #319 (Div. 1) C. Points on Plane 分块
C. Points on Plane Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/576/pro ...
- 【CodeForces】576 C. Points on Plane
[题目]C. Points on Plane [题意]给定坐标系中n个点的坐标(范围[0,10^6]),求一种 [ 连边形成链后总长度<=2.5*10^9 ] 的方案.n<=10^6. [ ...
- Codeforces Round #319 (Div. 1)C. Points on Plane 分块思想
C. Points on Plane On a pl ...
- Codeforces 576C. Points on Plane(构造)
将点先按x轴排序,把矩形竖着划分成$10^3$个块,每个块内点按y轴排序,然后蛇形走位上去. 这样一个点到下一个点的横坐标最多跨越$10^3$,一共$10^6$个点,总共$10^9$,一个块内最多走$ ...
- CodeForces 577E Points on Plane(莫队思维题)
题目描述 On a plane are nn points ( x_{i}xi , y_{i}yi ) with integer coordinates between 00 and 10^{6} ...
- Points on Plane Codeforces - 576C
https://www.luogu.org/problemnew/show/CF576C 看题面,一眼按莫队的方法排一下 直接交就会和我一样发现WA掉了... 算一下会发现,上限是3e9(块内左端点1 ...
随机推荐
- 数组名和数组名取地址&
在C中, 在几乎所有使用数组的表达式中,数组名的值是个指针常量,也就是数组第一个元素的地址. 它的类型取决于数组元素的类型: 如果它们是int类型,那么数组名的类型就是“指向int的常量指针“ ...
- iOS开发--关闭ARC
对整个项目关闭ARC project -> Build settings -> Apple LLVM complier 3.0 - Language -> objective-C A ...
- [Cubieboard] 在 Cubieboard 上安装 Node.js 和 npm
你有两个选择可以实现在Cubieboard上安装NodeJS,下载别人已经编译完成适用于Cubieboard的NodeJS二进制包,或者自己下载源码自行在Cubieboard上进行编译. 使用编译完成 ...
- Android源码中中一种常见的struct使用方法
直接看例子: #include<iostream> #include<stdlib.h> using namespace std; struct Base{ int ba; i ...
- activity的启动模式有哪些?
Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standar ...
- easy-ui curd方法
/** _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : ...
- 【大数据系列】win10不借助Cygwin安装hadoop2.8
一.下载安装包 解压安装包并创建data,name,tmp文件夹 二.修改配置文件 1.core-site.xml <?xml version="1.0" encoding= ...
- js 的空值判断程序
function empty(v){ switch (typeof v){ case 'undefined' : return true; case 'string' : if($.trim(v).l ...
- Visual Studio for Mac离线安装教程
Visual Studio for Mac离线安装教程 可以在线安装,也可以离线安装(本次安装博主使用离线,在线安装失败了) 据说翻个墙就可以,有条件的就翻吧 没条件的我于是选择离线安装………… 离线 ...
- Android ADB命令?这一次我再也不死记了!【简单说】
https://www.jianshu.com/p/56fd03f1aaae adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经 ...