题目名称 | 2487. 膜法师 |
---|---|
输入输出 | maf.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | Ostmbh 于2016-10-08加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:44, 提交:141, 通过率:31.21% | ||||
Hzoi_QTY | 100 | 0.371 s | 25.42 MiB | C++ |
xyz117 | 100 | 0.409 s | 19.36 MiB | C++ |
WildRage | 100 | 0.440 s | 13.64 MiB | C++ |
하루Kiev | 100 | 0.469 s | 15.57 MiB | C++ |
Hzoi_Maple | 100 | 0.641 s | 33.69 MiB | C++ |
Hzoi_moyi | 100 | 0.682 s | 34.65 MiB | C++ |
rvalue | 100 | 0.717 s | 27.97 MiB | C++ |
wangxh | 100 | 0.754 s | 63.31 MiB | C++ |
HZOI_蒟蒻一只 | 100 | 0.760 s | 30.83 MiB | C++ |
LadyLex | 100 | 0.787 s | 32.74 MiB | C++ |
关于 膜法师 的近10条评论(全部评论) | ||||
---|---|---|---|---|
把这个年轻人拉出去续一续
AZog
2017-10-04 16:54
11楼
| ||||
队列
| ||||
经本人实验,并不需要加库
HZOI_蒟蒻一只
2017-08-02 18:53
9楼
| ||||
玄学手动开栈= =
还有题目描述不是很暴力%嘛。。。 | ||||
手动开大栈空间……否则可能会RE一个点……
在文件操作下加上 int __size__= 128 << 20; char *__p__ = (char*)malloc(__size__) + __size__; __asm__("movl %0, %%esp\n" :: "r"(__p__)); 开头文件cstdlib. | ||||
暴力膜一发。一种常数和代码复杂度巨大的O(n)做法,tarjan+树规+线性DP飙到150+行,加快读后极限数据0.9s+卡时过。
| ||||
一怒之下手动开栈
小e
2016-10-09 21:37
5楼
| ||||
| ||||
我的正确率呀......
——扩大栈内存只能在主函数使?
Magic_Sheep
2016-10-09 14:49
3楼
| ||||
我为什么会把memset(vis, 0, sizeof(bool) * (n + 1))的bool写成int ... = =一直以为是栈空间开小了
BTW,COGS评测机有猫病,需要手动增大栈空间,推荐编译加入-Wl,--stack,[msize]指令 |
小x机房里有一些蛤,每到比赛时都会被拉出来续了。。。。
现在有n个人,每个人都有一个自己要膜的对象,并且轮到他后,他肯定会膜自己想膜的人,当然,如果有人很自恋,要膜自己,轮到自己的时候,也是可以续掉自己的。。。
当然,如果一个人被膜了之后就会很膨胀,不会去膜自己要膜的人。。
现在,作为一名膜法师,你可以设计膜人的顺序,顺序不一样,被膜的人的数目肯定也不一样。现在你想知道,如何设计顺序,让被膜的的最多和最少。
所有可以膜别人的人都要膜
第一行,一个整数n,表示有n个人。
第二行,n个用空格隔开整数Xi,Xi表示第i个人要膜的人的编号。
空格隔开的两个整数表示最少的膜人数和最多的膜人数
8 2 3 2 2 6 7 8 5
3 5
50% n<=5000
100% n<=1000000
膜掉6 8 2最少其他人无法再膜了
膜掉8 7 6 3 2最多其他人无法再膜了