Codeforces 844 D Interactive LowerBound(随机化)
来源:互联网 发布:网络显卡联机 编辑:程序博客网 时间:2024/05/22 19:32
题目地址
题意:给你一个结构体数组模拟的单链表,他有两个值,一个是该位的数字,还有一位是下一个节点的下标,这个数组长度为n,告诉你头结点的下标,求出最小的大于等于x的数字是什么。,你最多有2000次询问,询问的格式是为(? 下标)得到这个下标的结构体里面的值。
思路:这个是我没怎么学过的随机化算法的解法,我看了下大佬的博客,学会了点,因为有2000次查询,先1000次随机数查询缩小范围,然后再进行999级按照缩小的范围顺序遍历下去,如果能找到就输出,如果不行就输出-1。但是我有点不理解的是如果没有加上这句就wa第6个样例。 mt19937 myrand(time(0));
然后我查了下,mt19937这个是随机化算法的东西,但是我不太理解为什么我已经srand(time(NULL));
,还是wa。
#include <bits/stdc++.h> #define N 110#define M 500010#define LL __int64#define inf 0x3f3f3f3f3f3f3f3f#define lson l,mid,ans<<1 #define rson mid+1,r,ans<<1|1#define getMid (l+r)>>1#define movel ans<<1#define mover ans<<1|1using namespace std; mt19937 myrand(time(0));const LL mod = 1e9 + 7; int main() { cin.sync_with_stdio(false); int n, x, y, z, id, ans, start; cin >> n >> start >> x; ans = -1, id = start; for (int i = 0; i < 1000; i++) { y = myrand() % n + 1; cout << "? " << y << endl; fflush(stdout); cin >> y >> z; if (y > ans&&y < x) { ans = y; id = z; } } for (int i = 1; i < 1000; i++) { if (id == -1) { break; } cout << "? " << id << endl; fflush(stdout); cin >> y >> z; if (y >= x) { cout << "! " << y << endl; return 0; } id = z; } cout << "! -1" << endl; return 0;}close
阅读全文
0 0
- Codeforces 844 D Interactive LowerBound(随机化)
- AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
- AIM Tech Round 4 (Div. 2) D. Interactive LowerBound
- codeforce843B Interactive LowerBound(随机算法+交互题)
- AIM Tech Round 4 (Div. 1) B. Interactive LowerBound(随机)
- HSUT 1628 LowerBound(划分树+二分)
- 大学生程序设计邀请赛(华东师范大学)-D题(线段树+随机化)
- Interactive 3D Graphics-Lesson2 Problem Set
- Interactive 3D Graphics-Lesson3 Notes
- Interactive 3D Graphics-Lesson4 Problem Set
- Codeforces Round #192 (Div. 1) C. Graph Reconstruction (随机化算法)
- 随机化算法(二)
- 随机化
- CodeForces 10D(DP)
- CodeForces 589D(思路)
- codeforces 682D(DP)
- codeforces 723D(DFS)
- Codeforces-Goodbye2016-D(DP)
- Spring Boot 学习——Controller的使用
- 《鸟哥的Linux私房菜 基础学习篇(第三版)》习题与解析(四)
- HDU ACM2014
- JsTree树不出来 报Uncaught TypeError: Cannot read property 'children' of undefined
- javascript:;与javascript:void(0)使用介绍
- Codeforces 844 D Interactive LowerBound(随机化)
- 使用Object的直接实例构造轻量级的字典
- 垃圾回收器——CMS收集器
- 闭包
- hdu 4747Mex【线段树】
- Andoid NDK编程 2 - JNI签名规则
- 学习Linux-4.12内核网路协议栈(2.3)——接口层数据包的接收(下半部)
- Java中不同进制的表现形式以及int,char,String之间的转换
- 集群/分布式环境下5种session处理策略