Problem A
题意:给出两个时间计算上面减下面。水题
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 //2014-01-30-21.18 2 #include3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include
Problem B
题意:George要准备一场比赛现在一有m个问题第i个难度为a[i],比赛至少有n个问题每个问题难度必须是b[i].george可以把一个难度大的问题降低。问你他最少需要新出几道题才能满足需要。
思路:由于大的能变小的,所以贪心一下用a中最小的尝试匹配b中最小的。即可得出答案
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 //2014-01-30-21.18 2 #include3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include
Problem C
题意:有一个数列b能执行一系列操作:
每次选i,j满足b[i]>b[j]。
v = concat(bi, bj),就是把大的数拼接在小的前面。
将v加入末尾。
删除b[i],b[j]
最终得到一个数。现在告诉你这个数,问你原先数列最多可能有几个数。
思路:仔细观察操作我们可以知道,只要满足每次把大数截断并且满足前面大于后面我们就能多造出来一个数并且对前面的那个数递归的解决问题。最终得到答案
代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 //2014-01-30-21.18 2 #include3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include