返回信息流我也是40%数据。
不太清楚这个范围是n表示什么,从1~n还是?
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #89340同步于 2016/3/28
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
Re: 【更新已懂。求交流网易游戏三道题】求问今晚360的这道题怎
gluowei
2016/3/28镜像同步37 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
暴力解法直接LTE。就投机取巧试了一下,A了40.
【 在 gluowei 的大作中提到: 】
: 我也是40%数据。
: 不太清楚这个范围是n表示什么,从1~n还是?
是不是贴着b选就可以了?b把区间分成两段,它左边和他右边,判断一下左右哪段长,在长的那段贴着他选,如果一样选左边。比如这样(1,2,3,4,5)如果他选了2那么你就要选3 因为右边的都归你了,如果他选4,你就选3因为左边都归你了
没找到原题,谁有URL发我下,谢谢。
感觉是
a1 = b + 1; c1 = n - a1 + 1;
a2 = b - 1; c2 = a2;
判断下a1 a2是否合法,再判断下c1 c2谁大?
怀疑是边界条件的原因。
刚刚考完试,没有了。没懂你说的。
【 在 Wizmann 的大作中提到: 】
: 没找到原题,谁有URL发我下,谢谢。
: 感觉是
: a1 = b + 1; c1 = n - a1 + 1;
: ...................
//
// main.cpp
// 3602
//
// Created by 中央政治局常委 on 16/3/28.
// Copyright (C) 2016年 中央政治局常委. All rights reserved.
//
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, const char * argv[]) {
int a, b, res;
bool flag = false;
while (cin >> a >> b) {
flag = a % 2;
int tmp = (1 + a) / 2;
if (flag) {//3 1 2 3
if (b >= tmp) res = b - 1;
else res = b + 1;
} else {//4 1 2 3 4
if (b > tmp) res = b - 1;
else res = b + 1;
}
if (res < 1) res = 1;
else if (res >= a) res = a;
cout << res << endl;
}
return 0;
}
【 在 lee123 的大作中提到: 】
: 题目:
: 数值游戏
: Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
: ...................
并不需要暴力。。。
#include <iostream>
using namespace std;
int main(void)
{
int n, b;
while (cin >> n >> b) {
int a;
if (b-1 >= n-b)
a = b - 1;
else
a = b + 1;
cout << (a == 0 ? 1 : a) << endl;
}
return 0;
}