uva 1554 - Binary Search(暴力)
2014-02-28 23:03
260 查看
题目链接:uva 1554 - Binary Search
题目大意:按照题目中的二分函数,给出i和L,表示说在第i个位置,并且查找了L次,问说有多少个N满足,注意输出的时候按照区间的形式。
解题思路:暴力,从i+1到MAXN,每次模拟题目中的代码跑一遍即可,然后要注意上限问题,N最大为1e4,然后最后N=1e4的时候要注意一下。
#include <stdio.h>
#include <string.h>
const int N = 1e4+1;
int x, c, v
, l
, r
;
bool judge(int n)
{
int p = 0, q = n-1, cnt = 0;
while (p <= q) {
int mid = (p + q) / 2;
cnt++;
if (cnt > c) return false;
if (mid == x) return cnt == c;
if (x < mid)
q = mid - 1;
else
p = mid + 1;
}
return false;
}
int main () {
while (scanf("%d%d", &x, &c) == 2) {
memset(v, 0, sizeof(v));
bool flag = false;
int ans = 0;
for (int i = x+1; i < N; i++) {
if (judge(i)) {
if (!flag) {
l[ans] = i;
flag = true;
}
} else {
if (flag) {
r[ans++] = i-1;
flag = false;
}
}
}
if (flag) r[ans++] = N-1;
printf("%d\n", ans);
for (int i = 0; i < ans; i++)
printf("%d %d\n", l[i], r[i]);
}
return 0;
}
题目大意:按照题目中的二分函数,给出i和L,表示说在第i个位置,并且查找了L次,问说有多少个N满足,注意输出的时候按照区间的形式。
解题思路:暴力,从i+1到MAXN,每次模拟题目中的代码跑一遍即可,然后要注意上限问题,N最大为1e4,然后最后N=1e4的时候要注意一下。
#include <stdio.h>
#include <string.h>
const int N = 1e4+1;
int x, c, v
, l
, r
;
bool judge(int n)
{
int p = 0, q = n-1, cnt = 0;
while (p <= q) {
int mid = (p + q) / 2;
cnt++;
if (cnt > c) return false;
if (mid == x) return cnt == c;
if (x < mid)
q = mid - 1;
else
p = mid + 1;
}
return false;
}
int main () {
while (scanf("%d%d", &x, &c) == 2) {
memset(v, 0, sizeof(v));
bool flag = false;
int ans = 0;
for (int i = x+1; i < N; i++) {
if (judge(i)) {
if (!flag) {
l[ans] = i;
flag = true;
}
} else {
if (flag) {
r[ans++] = i-1;
flag = false;
}
}
}
if (flag) r[ans++] = N-1;
printf("%d\n", ans);
for (int i = 0; i < ans; i++)
printf("%d %d\n", l[i], r[i]);
}
return 0;
}
相关文章推荐
- 为什么拷贝构造函数必须为引用传递,不能是值传递?
- Maven构建Java工程
- 可靠、高吞吐架构基础改造
- Python实现的简单计算器
- adb opendir failed ,permission denied
- MAC锁屏方法
- uva 10134 - AutoFish(simulation)
- Paste Deployment简介以及cinder-api-paste.ini的解析(1)
- Checkstyle手册
- Java知识总结-常见流
- Java知识总结-常见流
- ADB server didn't ACK问题解决
- HDU 1754 I Hate It (线段树)
- 英雄会15题 阶乘与整除
- python修改文件内容
- HDU - 1723 - Distribute Message
- 基于按annotation的hibernate主键生成策略
- Nodejs初阶之express
- 12235 - Help Bubu(状态压缩dp)
- ZOJ-2416