问题 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"。如果多个的方案赚得的金币都是最大,则输出购买的商品序号最靠前的这种方案。
   

样例输入

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

样例输出

33
Buy 3 from Alliance
Buy 1 from Horde
Buy 0
Buy 1 from Alliance
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个金币。

没改对。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm> using namespace std; typedef struct node{
int a;
int b;
int c;
};
node no[]; int cmp(int a,int b){
return no[a].b-no[a].a>no[b].b-no[b].a;
} int main()
{
int n;
int m;
int l=;
int p=;
int aa[];
int shifou_aa[]={};
int bb[];
int shifou_bb[]={};
int k=;
int sum1=;
int sum2=;
int sum=;
scanf("%d %d",&n,&m);
for(int i=;i<m;i++){
scanf("%d %d",&no[i].a,&no[i].b);
if(no[i].a<no[i].b){
no[i].c=;
}else{
no[i].c=;
}
}
for(int i=;i<m;i++){
if(no[i].c==){
for(int j=;j<n/no[i].a;j++){
aa[k++]=i;
}
}
}
sort(aa,aa+k-,cmp);
for(int i=;i<k;i++){
l+=no[aa[i]].a;
shifou_aa[i]=;
if(l<=n){
p=i;
}else{
l-=no[aa[i]].a;
shifou_aa[i]=;
continue;
}
}
for(int i=;i<=p;i++){
if(shifou_aa[i]==){
sum1+=no[aa[i]].b-no[aa[i]].a;
} }
sum=n;
n+=sum1; for(int i=;i<m;i++){
int temp=no[i].a;
no[i].a=no[i].b;
no[i].b=temp;
} ////////////////
l=;
for(int i=;i<m;i++){
if(no[i].c==){
for(int j=;j<n/no[i].a;j++){
bb[k++]=i;
}
}
}
sort(aa,aa+k-,cmp);
for(int i=;i<k;i++){
l+=no[bb[i]].a;
shifou_bb[i]=;
if(l<=n){
p=i;
}else{
l-=no[bb[i]].a;
shifou_bb[i]=;
continue;
}
}
for(int i=;i<=p;i++){
if(shifou_bb[i]==){
sum2+=no[bb[i]].b-no[bb[i]].a;
} }
int sss=sum1+sum2;
printf("%d %d %d",sum1,sum2,sss);
return ;
}

桐桐的贸易--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. C#给文件夹添加权限

    //==== //添加权限 private void SetAttributes(string folder) { if (folder == "" || !Directory.E ...

  2. BIEE 创建一个简单的分析(2)

    步骤: 1.如果BIEE安装在本机,直接登录http://localhost:9704/analytics/ 点击右上方导航菜单中的“新建->分析” 2.选择上节创建的RPD文件中的SCOTT主 ...

  3. BZOJ-3231 递归数列 矩阵连乘+快速幂

    题不是很难,但是啊,人很傻啊...机子也很鬼畜啊... 3231: [Sdoi2008]递归数列 Time Limit: 1 Sec Memory Limit: 256 MB Submit: 569 ...

  4. BZOJ-4010 菜肴制作 贪心+堆+(拓扑图拓扑序)

    无意做到...char哥还中途强势插入干我...然后据他所言,看了一会题,一转头,我爆了正解....可怕 4010: [HNOI2015]菜肴制作 Time Limit: 5 Sec Memory L ...

  5. Rootkit Hunter Sourcecode Learning

    目录 . Rootkit Hunter Introduce() . Source Code Frame() . do_system_check_initialisation() . do_system ...

  6. Jfreechart 乱码

    整个图标分成三部分chart   title,chart 的plot还有chart的   legend三个部分需要对他们分别设置字体就对了. 先看解决方法( 把这几个全部设置了,都搞定了就可以了): ...

  7. ActivityInfo taskAffinity

    通常在Manifest里面使用 <application android:icon="@drawable/icon" android:label="@string/ ...

  8. Idea 添加lib文件夹,并添加至项目Libary

    在WEB-INF文件夹下新建lib文件夹,在lib文件夹上右键选择Add as Libary...,然后填写library名称,选择作用级别,选择作用项目,OK 注意:lib文件夹下需要有jar包后才 ...

  9. 找出现有Vector或ArrayList或数组中重复的元素&给现有Vector或ArrayList或数组去重

    //直接上代码: public static void main(String[] args) { List<Integer> list = new Vector<Integer&g ...

  10. 关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单、书签等相关问题

    2015-03-02 更新文章,由于需求修改,更改了flexpaper插件,故增加第9.10.11小节,下载代码时请注意. 先废话几句.最近用到文档在线浏览功能,之前用的是print2flash(一个 ...