问题 A: 桐桐的贸易

时间限制: 1 Sec  内存限制: 64 MB
提交: 15  解决: 2
[提交][状态][讨论版]

题目描述

  桐桐家在Allianceance城,好友ROBIN家在Horde城,假期,ROBIN邀桐桐去Horde城旅游。聪明的桐桐发现,A11iance城与Horde城的市场上的某些商品存在着很大的差价。可以从中获取相当可观的利润。为了赚回这次旅游的花费,桐桐决定在Alliance城购买一些商品,到Horde城以当地市场价卖掉,然后在Horde城买一些商品,再回到Alliance城卖掉。这样一个来回,桐桐可以赚到不少钱。
   通过商业调查,他已经在出发前就知道了Alliance城和Horde城的各种商品的价格。在他现有的资产的前提下,他希望能够在一次旅行中赚取尽可能多的金币。那么请你设计一个程序,为桐桐设计一个购买方案,使一次来回能够赚到最多的金币。
   

输入

第1行,两个整数N、M(1≤N≤100000;1≤M≤100),表示他在出发前有N个金币,Allian和Horde的市场中都有M种商品。
第2~M+l行,每行两个整数Ai、Bi,表示第i种商品在Alliance城的市场价为Ai,在市场价为Bi。

输出

第1行,一个整数,桐桐一次来回最多能够赚到的金币数。最后结果不超过4000000。
   第2―M+l行,第i+l行为第i个商品的购买方法,输出一个句子。如果要从Alliance购买k个,输出“Buy k from Alliance”,如果要从Horde购买k个,输出“Buy k from Horde”,如果不需要购买,输出“Buy 0"。如果多个的方案赚得的金币都是最大,则输出购买的商品序号最靠前的这种方案。
   

样例输入

  1. 23 5
  2. 6 9
  3. 11 7
  4. 3 2
  5. 4 6
  6. 5 3

样例输出

  1. 33
  2. Buy 3 from Alliance
  3. Buy 1 from Horde
  4. Buy 0
  5. Buy 1 from Alliance
  6. Buy 9 from Horde

提示

初始时,桐桐在A11iance城,他有23个金币,这时他购买3个商品1,1个商品4,花费3×6+1×4=22个金币,剩余1个金币。到达Horde城,他把它们卖掉,可以获得3×9+1×6=33个金币,赚了11个金币。这时,他用他的34个金币,在Horde城购买1个商品2,9个商品5,花费l×7+9×3=34个金币。回到Alliance城,卖掉可以获得1×11+9×5=56个金币,赚了22个金币。与起始时他的23个金币相比,他赚了33个金币。

没改对。

代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. typedef struct node{
  8. int a;
  9. int b;
  10. int c;
  11. };
  12. node no[];
  13.  
  14. int cmp(int a,int b){
  15. return no[a].b-no[a].a>no[b].b-no[b].a;
  16. }
  17.  
  18. int main()
  19. {
  20. int n;
  21. int m;
  22. int l=;
  23. int p=;
  24. int aa[];
  25. int shifou_aa[]={};
  26. int bb[];
  27. int shifou_bb[]={};
  28. int k=;
  29. int sum1=;
  30. int sum2=;
  31. int sum=;
  32. scanf("%d %d",&n,&m);
  33. for(int i=;i<m;i++){
  34. scanf("%d %d",&no[i].a,&no[i].b);
  35. if(no[i].a<no[i].b){
  36. no[i].c=;
  37. }else{
  38. no[i].c=;
  39. }
  40. }
  41. for(int i=;i<m;i++){
  42. if(no[i].c==){
  43. for(int j=;j<n/no[i].a;j++){
  44. aa[k++]=i;
  45. }
  46. }
  47. }
  48. sort(aa,aa+k-,cmp);
  49. for(int i=;i<k;i++){
  50. l+=no[aa[i]].a;
  51. shifou_aa[i]=;
  52. if(l<=n){
  53. p=i;
  54. }else{
  55. l-=no[aa[i]].a;
  56. shifou_aa[i]=;
  57. continue;
  58. }
  59. }
  60. for(int i=;i<=p;i++){
  61. if(shifou_aa[i]==){
  62. sum1+=no[aa[i]].b-no[aa[i]].a;
  63. }
  64.  
  65. }
  66. sum=n;
  67. n+=sum1;
  68.  
  69. for(int i=;i<m;i++){
  70. int temp=no[i].a;
  71. no[i].a=no[i].b;
  72. no[i].b=temp;
  73. }
  74.  
  75. ////////////////
  76. l=;
  77. for(int i=;i<m;i++){
  78. if(no[i].c==){
  79. for(int j=;j<n/no[i].a;j++){
  80. bb[k++]=i;
  81. }
  82. }
  83. }
  84. sort(aa,aa+k-,cmp);
  85. for(int i=;i<k;i++){
  86. l+=no[bb[i]].a;
  87. shifou_bb[i]=;
  88. if(l<=n){
  89. p=i;
  90. }else{
  91. l-=no[bb[i]].a;
  92. shifou_bb[i]=;
  93. continue;
  94. }
  95. }
  96. for(int i=;i<=p;i++){
  97. if(shifou_bb[i]==){
  98. sum2+=no[bb[i]].b-no[bb[i]].a;
  99. }
  100.  
  101. }
  102. int sss=sum1+sum2;
  103. printf("%d %d %d",sum1,sum2,sss);
  104. return ;
  105. }

桐桐的贸易--WA的更多相关文章

  1. Vijos P1325桐桐的糖果计划

    > P1325桐桐的糖果计划 标签:**图结构 强连通分量** 描述 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致他不得不等到塞的车或人走 ...

  2. vijos1325 桐桐的糖果计划

    Description 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧-- 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致 ...

  3. 桐桐的数学游戏(N皇后)

    题目描述 相信大家都听过经典的“八皇后”问题吧?这个游戏要求在一个8×8的棋盘上放置8个皇后,使8个皇后互相不攻击(攻击的含义是有两个皇后在同一行或同一列或同一对角线上). 桐桐对这个游戏很感兴趣,也 ...

  4. 桐桐的糖果计划(vijos 1325)

    背景 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧…… 描述 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致他不得不等到 ...

  5. 【2018寒假集训 Day1】【位运算】桐桐的运输方案

    桐桐的运输方案(transp) [问题描述] 桐桐有 N 件货物需要运送到目的地,它们的重量和价值分别记为: 重量:W1,W2,…,Wn: 价值:V1,V2,…,Vn: 已知某辆货车的最大载货量为 X ...

  6. VIJOS-P1325 桐桐的糖果计划

    VIJOS-P1325 桐桐的糖果计划 JDOJ 1432 桐桐的糖果计划 https://neooj.com/oldoj/problem.php?id=1432 Description 桐桐很喜欢吃 ...

  7. Java实现桐桐的数学难题

    桐桐的数学难题 题目描述 今天数学课上,桐桐学习了质数的知识:一个正整数如果只能被1和它本身整除,那么这个整数便是质数.桐桐就想:任意一个正整数是否都能分解成若干个质数相乘的形式呢?输入一个正整数n( ...

  8. Vijos P1325桐桐的糖果计划(有向图双连通分量)

    /*重边不能删 不能删 不能删...*/ #include<iostream> #include<cstdio> #include<cstring> #define ...

  9. 奇怪的电梯(HDU1548) (Dijkstra)或者(BFS)

    问题 E: 奇怪的电梯 时间限制: 1 Sec  内存限制: 64 MB提交: 35  解决: 16[提交][状态][讨论版] 题目描述 有一天桐桐做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都 ...

随机推荐

  1. 【URAL 1917】Titan Ruins: Deadly Accuracy(DP)

    题目 #include<cstdio> #include<algorithm> using namespace std; #define N 1005 int n, m, cn ...

  2. 使用FMDB事务批量更新数据库

    今天比较闲看到大家在群里讨论关于数据库操作的问题,其中谈到了“事务”这个词,坦白讲虽然作为计算机专业的学生,在上学的时候确实知道存储过程.触发器.事务等等这些名词的概念,但是由于毕业后从事的不是服务器 ...

  3. php复习

    最近要用php,好久不用感觉手生.抓起<零基础学PHP>一书复习了下,顺带学了smarty模板语言,然后到慕课网看了些php中级视频教程,这里记录下. php最基本的文件上传 不用任何第三 ...

  4. POJ2485Highways(prime 水题)

    Highways Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26516   Accepted: 12136 Descri ...

  5. POJ2049Finding Nemo(bfs + 构图)

    Finding Nemo Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 8456   Accepted: 1975 Desc ...

  6. view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的

    view视图文件中的input等输入框必须含有name属性,不然控制器里的动作formCollection是没有值的,就是没有name属性,后台获取不到值

  7. JDK,JRE,JVM区别与联系(ZZ)

    http://www.cnblogs.com/hencehong/p/3252166.html 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JD ...

  8. 求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. JDBCTemplate基础学习

    JDBCTemplate:spring提供的用于操作数据库的模板,类似DbUtils.使用时必须设置数据源(DataSource):数据源如DBCP.C3P0等 一.JDBCAPI简单使用Demo 1 ...

  10. python 与 mysql

    1.开发环境: 1)CLion-2016.1.3 C/C++ 与 Python 混合编程 IDE,先安装好以下 2) 3) 编译器再关联 2)tdm-gcc-4.8.1-3 C/C++ 编译器 3)W ...