生若有余
A DP Problem poj 2295
WA了N多次,猛然发现一处少写一符号,总算A掉了.这种题目就是要细心细心再细心.
#include
<
iostream
>
#include
<
cstring
>
#include
<
cmath
>
using
namespace
std;
int
main()
{
char
str[
1000
]
=
{
0
}
;
int
i
=
0
;
int
n
=
0
;
cin
>>
n;
while
(n
--
)
{
int
len
=
0
;
cin
>>
str;
len
=
strlen(str);
int
sign
=
1
;
int
xx[
2
]
=
{
0
}
;
int
cc[
2
]
=
{
0
}
;
int
cnt
=
0
;
//
int
stack
=
0
;
int
empty
=
1
;
for
(i
=
0
;i
<
len;i
++
)
{
switch
(str[i])
{
case
'
=
'
:
if
(
!
empty)
{
cc[cnt]
+=
stack
*
sign;
}
empty
=
1
;
stack
=
0
;
cnt
++
;
sign
=
1
;
break
;
case
'
-
'
:
if
(
!
empty)
{
cc[cnt]
+=
stack
*
sign;
stack
=
0
;
empty
=
1
;
sign
=-
1
;
}
else
sign
*=-
1
;
break
;
case
'
+
'
:
if
(
!
empty)
{
cc[cnt]
+=
stack
*
sign;
stack
=
0
;
sign
=
1
;
empty
=
1
;
}
break
;
case
'
x
'
:
if
(
!
empty)
{
xx[cnt]
+=
stack
*
sign;
stack
=
0
;
empty
=
1
;
}
else
xx[cnt]
+=
sign;
sign
=
1
;
break
;
default
:
stack
=
stack
*
10
+
str[i]
-
'
0
'
;
empty
=
0
;
break
;
}
}
if
(
!
empty)
{
cc[cnt]
+=
sign
*
stack;
}
if
(xx[
0
]
==
xx[
1
])
{
if
(cc[
0
]
==
cc[
1
])
{
cout
<<
"
IDENTITY
"
<<
endl;
}
else
cout
<<
"
IMPOSSIBLE
"
<<
endl;
}
else
if
((cc[
1
]
-
cc[
0
])
%
(xx[
0
]
-
xx[
1
])
==
0
)
{
cout
<<
(cc[
1
]
-
cc[
0
])
/
(xx[
0
]
-
xx[
1
])
<<
endl;
}
else
{
int
flag1,flag2;
if
(cc[
1
]
>
cc[
0
])
flag1
=
1
;
else
flag1
=-
1
;
if
(xx[
0
]
>
xx[
1
])
flag2
=
1
;
else
flag2
=-
1
;
if
(flag1
*
flag2
>
0
)
cout
<<
(cc[
1
]
-
cc[
0
])
/
(xx[
0
]
-
xx[
1
])
<<
endl;
else
cout
<<
(cc[
1
]
-
cc[
0
])
/
(xx[
0
]
-
xx[
1
])
-
1
<<
endl;
}
}
return
0
;
}
posted on 2010-08-21 17:24
若余
阅读(206)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
首页
新随笔
联系
聚合
管理
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 16
文章 - 0
评论 - 4
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
(16)
2010年9月 (1)
2010年8月 (14)
2009年8月 (1)
搜索
最新随笔
1. poj 1797 Heavy Transportation 最短路
2. poj 3734 Blocks 生成函数
3. poj 2348 Euclid's Game 博弈 取子
4. Poj 2153 Rank List --map / 计数排序
5. 1430 Binary Stirling Numbers 斯特灵数
6. POJ 3318 Matrix Multiplication 随机化算法
7. poj 1195 Mobile phones 二维树状数组
8. POJ 1026 Cipher
9. Poj 2785 4 Values whose Sum is 0 hash 哈希表
10. Push Botton Lock poj 3088斯特灵数
最新评论
1. re: 快速幂取模 PKU ACM 3070
评论内容较长,点击标题查看
--呢喃的歌声
2. re: poj 2085 Inversion 求逆序列[未登录]
@sdz
谢谢博主,是我理解错了。
--Klion
3. re: poj 2085 Inversion 求逆序列
评论内容较长,点击标题查看
--sdz
4. re: poj 2085 Inversion 求逆序列[未登录]
只要知道这样一个事实:一个序列的逆序唯一决定了这个序列。
楼主,对这个不是很理解,望解释。
比如
4 5 3 2 1和5 3 4 2 1的逆序数都是9,或许是我理解有问题?
--Klion
评论排行榜
1. poj 2085 Inversion 求逆序列(3)
2. 快速幂取模 PKU ACM 3070(1)
3. poj 1631 Bridging signals 最长上升子序列(0)
4. poj 3358 Period of an Infinite Binary Expansion求有理数循环节长度(0)
5. poj 2282 The Counting Problem 3252 round numbers(0)