17 条题解
-
1bodhiye LV 8 @ 2015-09-05 08:53:15
#include<iostream>
#include<cstring>
#include<stdlib.h>
#include<cmath>using namespace std;
long long ab(long long n);
int main()
{
while (1)
{
char s[256];
long long i,j,a;
cin >> s;
if (strlen(s) > 10)
cout << "0" << endl;
else
{
i = atoi(s);
j = abs(i);
if (j == 0)return 0;
if (j > ab(32767))
cout << "0" << endl;
else
{
for (a = 1;a <= 32767;a++)
{
if (ab(a) % 2 == j % 2)
{
if (ab(a) >= j)
{
cout << a << endl;
break;
}
}
}
}
}
}
return 0;
}long long ab(long long n)
{
long long sum = 0;
sum = (1 + n)*n / 2;
return sum;
} -
02016-08-29 16:55:12@
估计有人和我一样没有看清题目,不知道是要计算旅行家正好有n件物品是所在的位置,所以没有考虑奇偶性
-
02009-01-05 20:06:03@
编译通过...
-
02008-10-27 21:21:38@
奇偶性...很好很强大阿.
-
02008-10-25 11:51:58@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
这种题目为什么没人做。。。 -
02008-10-14 21:08:41@
第82个,一次AC
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar
i,n:longint;
m:extended;
begin
readln(m);
while m0 do
begin
if abs(m)>32767*32768 div 2 then
begin
writeln(0);readln(m);continue;
end;
if abs(m)=1 then
begin
writeln(1);readln(m);continue;
end;
n:=trunc(abs(m));
i:=2;
while (i*(i+1) div 2 -
02008-09-24 12:20:36@
升一星纪念
O(1),11行,0msAC
-
02008-09-16 13:14:05@
好简单,O(1)就够了
-
02008-09-14 10:41:49@
这个题怎么会只有61人过,难度也就是1啊!!!
我的方法是用的O(n)的数学方法。
为了简单我们只看正数部分,负数一样。
首先我们观察i=1,组成1;
i=2,组成1,3;
i=3,组成2,4,6;
i=4,组成2,4,6,8,10;
i=5,组成1,3,5,7,9,11,13,15;应该发现规律了吧?就是i可以组成sum[i]内的所有和sum[i]奇偶性相同的所有数。
因此只要一个一重循环,判断n最早出现的位置即可。p.s:AC的100题,纪念一下
-
02008-09-03 13:22:58@
begin
读字符串
while 非零 do
begin
去掉首位负号
if 前面有很多零 then 去掉
if 把前面的零去掉就什么也不剩了 then 退出程序
if 长度大于9 then 输出0 else
begin
转化为数字x
找到最小的数k,满足:从1加到k的和大于等于x,且与x奇偶性相同
end
读字符串
end
end是不是有点疑心太重啊?
-
02008-09-03 12:51:45@
楼上的楼上,怎么用高精度开方?
-
02008-08-20 11:22:28@
谢谢楼上大牛
-
02008-07-17 12:22:54@
楼下大牛
多谢! -
02007-07-21 14:24:49@
建议把那个什么32767去掉 来个高精度开方 也对得起这个"难度2"
( 2006-9-15 3:17:27 )呵呵,不明白为什么要用开方...也不懂用什么数论......直接一个O(MAXINT)的算法....................
-
02006-09-15 03:17:27@
汗 这种简单题居然没人做...
不知道出题的大牛所谓的"数论,关键是边界的处理"是指什么
偶只用简单的枚举 反正题目规模很小...
呵呵 建议把那个什么32767去掉 来个高精度开方 也对得起这个"难度2"
-
02006-09-15 20:26:47@
数论,关键是边界的处理
补充:枚举不是标准算法,标准算法是接近O(1)的,thebeet之所以能过是因为我的数据弱,这当然是数论题,至于难度2,确实是够不上
-
-12015-02-06 11:18:39@
当前位置:/home/题库/P1185 Endless Traveling/题解
个人通过/递交:46/103(45%)
未递交
Endless Traveling发表题解
需要更丰富的内容输出?编辑器快速入门 | Markdown详细帮助
[Ctrl+Enter] 预览0
回复 332404521发表于2009-01-05 20:06
编译通过...
0
回复 cgy4ever发表于2008-10-27 21:21
奇偶性...很好很强大阿.
0
回复 玛维-影之歌发表于2008-10-25 11:51
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
Accepted 有效得分:100 有效耗时:0ms
这种题目为什么没人做。。。0
回复 William D发表于2008-10-14 21:08
第82个,一次AC
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
Accepted 有效得分:100 有效耗时:0ms
var
i,n:longint;
m:extended;
begin
readln(m);
while m<>0 do
begin
if abs(m)>32767*32768 div 2 then
begin
writeln(0);readln(m);continue;
end;
if abs(m)=1 then
begin
writeln(1);readln(m);continue;
end;
n:=trunc(abs(m));
i:=2;
while (i*(i+1) div 2<n)or(odd(i*(i+1)div 2) xor odd(n)) do
inc(i);
writeln(i);
readln(m);
end;
end.0
回复 AlNo3发表于2008-09-24 12:20
升一星纪念
O(1),11行,0msAC
0
回复 sxpeter发表于2008-09-16 13:14
好简单,O(1)就够了
0
回复 jsydtc发表于2008-09-14 10:41
这个题怎么会只有61人过,难度也就是1啊!!!
我的方法是用的O(n)的数学方法。
为了简单我们只看正数部分,负数一样。
首先我们观察i=1,组成1;
i=2,组成1,3;
i=3,组成2,4,6;
i=4,组成2,4,6,8,10;
i=5,组成1,3,5,7,9,11,13,15;应该发现规律了吧?就是i可以组成sum[i]内的所有和sum[i]奇偶性相同的所有数。
因此只要一个一重循环,判断n最早出现的位置即可。p.s:AC的100题,纪念一下
0
回复 DFS发表于2008-09-03 13:22
begin
读字符串
while 非零 do
begin
去掉首位负号
if 前面有很多零 then 去掉
if 把前面的零去掉就什么也不剩了 then 退出程序
if 长度大于9 then 输出0 else
begin
转化为数字x
找到最小的数k,满足:从1加到k的和大于等于x,且与x奇偶性相同
end
读字符串
end
end是不是有点疑心太重啊?
0
回复 fammiebright发表于2008-09-03 12:51
楼上的楼上,怎么用高精度开方?
0
回复 hzx2008发表于2008-08-20 11:22
谢谢楼上大牛
0
回复 fengyi发表于2008-07-17 12:22
楼下大牛
多谢!0
回复 giny发表于2007-07-21 14:24
建议把那个什么32767去掉 来个高精度开方 也对得起这个"难度2"
( 2006-9-15 3:17:27 )呵呵,不明白为什么要用开方...也不懂用什么数论......直接一个O(MAXINT)的算法....................
0
回复 thebeet发表于2006-09-15 03:17
汗 这种简单题居然没人做...
不知道出题的大牛所谓的"数论,关键是边界的处理"是指什么
偶只用简单的枚举 反正题目规模很小...
呵呵 建议把那个什么32767去掉 来个高精度开方 也对得起这个"难度2"
0
回复 lolanv发表于2006-09-15 20:26
数论,关键是边界的处理
补充:枚举不是标准算法,标准算法是接近O(1)的,thebeet之所以能过是因为我的数据弱,这当然是数论题,至于难度2,确实是够不上
没有更多题解了...
UPYUN
评测机们
◦Jtwd2
◦树形图设计者
◦上海红茶馆
◦VijosExVijos 2.0 动态
◦2014-9-16 网络维护
◦2014-9-25 备案完毕
◦2014-9-28 更换服务器
◦2014-11-28 微小更新实验室 | API | 博客 | 帮助 | 隐私 | 联系 | 关于 | 沪ICP备14040537号
© Copyright Vijos, a1520eb beta, in 29.4919 ms
标程在下面
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
Accepted 有效得分:100 有效耗时:0ms
- 1