HooLee
If you believe, you can!
C++博客
首页
新随笔
新文章
联系
管理
poj1017Packets
关于数字的题我的确不擅长,可能是抽象思维的能力太差了,多动手画画也许会好些。
本以为这一题是DP,仔细分析之后才发现是模拟,原因是箱子之间的组合情况极其有限!
代码
1
import
java.io.
*
;
2
import
java.util.
*
;
3
class
Main
4
{
5
static
int
am[]
=
new
int
[
7
];
6
static
int
cans;
7
public
static
void
main(String[] args)
8
{
9
Scanner sc
=
new
Scanner(System.in);
10
11
for
(
int
i
=
1
; i
<=
6
; i
++
)
12
am[i]
=
sc.nextInt();
13
while
(am[
6
]
+
am[
1
]
+
am[
2
]
+
am[
3
]
+
am[
4
]
+
am[
5
]
!=
0
)
14
{
15
cans
=
0
;
16
cans
+=
am[
6
];
17
put5();
18
put4();
19
put3();
20
put2();
21
put1();
22
System.out.println(cans);
23
for
(
int
i
=
1
; i
<=
6
; i
++
)
24
am[i]
=
sc.nextInt();
25
}
26
}
27
private
static
void
put5()
{
//
put 25
28
cans
+=
am[
5
];
29
am[
1
]
-=
am[
5
]
*
11
;
30
}
31
private
static
void
put4()
{
32
if
(am[
4
]
==
0
)
33
return
;
34
cans
+=
am[
4
];
35
if
(am[
2
]
>=
am[
4
]
*
5
)
36
{
37
am[
2
]
-=
am[
4
]
*
5
;
38
}
39
else
40
{
41
am[
1
]
-=
(am[
4
]
*
20
-
am[
2
]
*
4
);
42
am[
2
]
=
0
;
43
}
44
}
45
private
static
void
put3()
{
46
cans
+=
(am[
3
]
+
3
)
/
4
;
47
int
last3
=
am[
3
]
%
4
;
48
if
(last3
==
3
)
49
{
50
if
(am[
2
]
>=
1
)
51
{
52
am[
2
]
-=
1
;
53
am[
1
]
-=
5
;
54
}
55
else
56
{
57
am[
1
]
-=
9
;
58
}
59
}
60
else
if
(last3
==
2
)
61
{
62
if
(am[
2
]
>=
3
)
63
{
64
am[
2
]
-=
3
;
65
am[
1
]
-=
6
;
66
}
67
else
68
{
69
am[
1
]
-=
(
6
+
4
*
(
3
-
am[
2
]));
70
am[
2
]
=
0
;
71
}
72
}
73
else
if
(last3
==
1
)
74
{
75
if
(am[
2
]
>=
5
)
76
{
77
am[
2
]
-=
5
;
78
am[
1
]
-=
7
;
79
}
80
else
81
{
82
am[
1
]
-=
(
7
+
4
*
(
5
-
am[
2
]));
83
am[
2
]
=
0
;
84
}
85
}
86
}
87
private
static
void
put2()
{
//
put 4
88
cans
+=
(am[
2
]
+
8
)
/
9
;
89
int
t
=
am[
2
]
%
9
;
90
if
(t
>
0
)
91
am[
1
]
-=
(
36
-
t
*
4
);
92
}
93
private
static
void
put1()
{
94
if
(am[
1
]
<
0
)
95
am[
1
]
=
0
;
96
cans
+=
(am[
1
]
+
35
)
/
36
;
97
}
98
}
99
posted on 2013-04-03 21:36
小鼠标
阅读(143)
评论(0)
编辑
收藏
引用
所属分类:
Java基础练习
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
编辑距离
闰年判断
正则表达式简单笔记
Excel格式地址转换
一道模拟题——机器人行走距离计算
排列练习2
素数筛法
排列组合练习
排列组合
poj1068Parencodings
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2012年5月
>
日
一
二
三
四
五
六
29
30
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
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
(111)
C语言(3)
DP(9)
Java笔记(1)
Java基础练习(25)
安卓(1)
本科毕设(1)
博弈(1)
大数(7)
回溯(2)
排序(10)
暑期培训周赛(3)
数据结构(7)
数论(1)
水题(8)
图论(24)
网选训练(8)
随笔档案
(127)
2014年3月 (1)
2013年7月 (10)
2013年5月 (1)
2013年4月 (11)
2013年3月 (8)
2012年10月 (1)
2012年9月 (12)
2012年8月 (38)
2012年7月 (14)
2012年6月 (2)
2012年5月 (8)
2012年4月 (6)
2012年3月 (6)
2012年2月 (4)
2011年8月 (5)
friends
陈钢
大鹏
党姐
焦林枫
汪涛
小白学长
媛姐
媛姐csdn
最新评论
1. re: 线段树
是这个样子的,所以在OJ有时候“卡住”了也不要太灰心,没准真的不是自己的原因呢。
加油,祝你好运啦!
--小鼠标
2. re: 线段树
对于编程竞赛来说,Java所需时间一般为C/C++的两倍。合理的竞赛给Java的时间限制是给C/C++的两倍。
--伤心的笔
3. re: poj1273--网络流
过来看看你。
--achiberx
4. re: (转)ubuntu11.10无法启动无线网络的解决方法
膜拜大神。。查了一个下午资料终于在这里解决了问题。。神牛说的区域赛难道是ACM区域赛。。?
--Hang
5. re: 快速排序、线性时间选择
博主,谢谢你的文章。你的方法可以很好的处理分区基准在数组中重复的情况,书上的方法遇到这种输入会堆栈溢出。书上给出了解释但给的方法貌似不简洁。
--lsxqw2004
阅读排行榜
1. 单调队列(5480)
2. Linux select()函数使用(3954)
3. 快速排序、线性时间选择(3619)
4. poj3468--绝对经典的线段树题(3610)
5. 优先队列--堆实现(3291)