专题一 Problem C
2016-04-01 20:25
204 查看
一、题目编号:
Problem C
二、简单题意:
田忌赛马问题。田忌和齐王各有n匹马,输入田忌的马的速度和齐王的马的速度。每一轮田忌赢了就得200两银子,平就得0两,输了就失去200两银子。问田忌最多能得到多少银子。
三、解题思路形成过程
先比较最慢的,如果田忌的最慢的比大王的还慢,那就和大王最快的比,输一场,如果的田忌最慢的比大王的快,那就和大王最慢的比,赢一场。如果最慢的相同,看最快的,大王的最快的快,用田忌的最慢比大王的最快,如果田忌的最快的快,那么田忌用最快的和大王最快的比。如果最快的也相等,看看是否所有的都相等,否则,用田忌最慢的比大王最快的。
四、感想
看起来很简单,但是要注意细节。
五、AC代码
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(const int &a,const int &b)
{
if(a!=b)
return a>b;
else
return a>b;
}
int main()
{
int N,i,j=0,f=0,k=0,s,m=0,sum[10000];
while(cin>>N)
{
if(N==0)
break;
sum[m]=0;
vector<int> a(N),b(N);
for(i=0;i<N;i++)
{
cin>>a[i];
}
for(i=0;i<N;i++)
{
cin>>b[i];
}
sort(a.begin(),a.end());
sort(b.begin(),b.end());
s=N-1;
j=0;
f=0;
while(N--)
{
if(a[j+s]>b[f+s])
{
sum[m]+=200;
s--;
}
else if(a[j]>b[f])
{
sum[m]+=200;
f++;
j++;
s--;
}
else if(a[j]>b[f+s])
{
sum[m]+=200;
j++;
s--;
}
else if(a[j]==b[f+s])
{
j++;
s--;
}
else
{
sum[m]-=200;
j++;
s--;
}
}
m++;
}
for(k=0;k<m;k++)
{
cout<<sum[k]<<endl;
}
}
Problem C
二、简单题意:
田忌赛马问题。田忌和齐王各有n匹马,输入田忌的马的速度和齐王的马的速度。每一轮田忌赢了就得200两银子,平就得0两,输了就失去200两银子。问田忌最多能得到多少银子。
三、解题思路形成过程
先比较最慢的,如果田忌的最慢的比大王的还慢,那就和大王最快的比,输一场,如果的田忌最慢的比大王的快,那就和大王最慢的比,赢一场。如果最慢的相同,看最快的,大王的最快的快,用田忌的最慢比大王的最快,如果田忌的最快的快,那么田忌用最快的和大王最快的比。如果最快的也相等,看看是否所有的都相等,否则,用田忌最慢的比大王最快的。
四、感想
看起来很简单,但是要注意细节。
五、AC代码
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
bool cmp(const int &a,const int &b)
{
if(a!=b)
return a>b;
else
return a>b;
}
int main()
{
int N,i,j=0,f=0,k=0,s,m=0,sum[10000];
while(cin>>N)
{
if(N==0)
break;
sum[m]=0;
vector<int> a(N),b(N);
for(i=0;i<N;i++)
{
cin>>a[i];
}
for(i=0;i<N;i++)
{
cin>>b[i];
}
sort(a.begin(),a.end());
sort(b.begin(),b.end());
s=N-1;
j=0;
f=0;
while(N--)
{
if(a[j+s]>b[f+s])
{
sum[m]+=200;
s--;
}
else if(a[j]>b[f])
{
sum[m]+=200;
f++;
j++;
s--;
}
else if(a[j]>b[f+s])
{
sum[m]+=200;
j++;
s--;
}
else if(a[j]==b[f+s])
{
j++;
s--;
}
else
{
sum[m]-=200;
j++;
s--;
}
}
m++;
}
for(k=0;k<m;k++)
{
cout<<sum[k]<<endl;
}
}
相关文章推荐
- libcurl上传文件到服务器的几种方式
- 10.ARM汇编指令集详解
- 0-1整数规划与隐枚举法-感受剪枝的魅力
- iOS 最新版 CocoaPods 的安装流程
- POJ 2251 Dungeon Master(BFS)
- php如何实现上一页下一页的功能 (不是列表页 是内容页)
- DFS-zb的生日
- buptoj:network
- 回归基础系列-快速排序[JAVA]
- 【BZOJ2243】[SDOI2011]染色【树链剖分】【线段树】
- 正则大全
- hdu1166敌兵布阵<树状数组>
- 基于easyui的 增 删 改 查
- ubuntu新建用户与无密码远程登陆
- C++指针【数组、字符串作为函数的参数】
- OpenGL:太阳、地球、月球模型模拟动画
- 回归基础系列-选择排序[JAVA]
- 《Linux操作系统分析》之分析Linux内核创建一个新进程的过程
- 【BZOJ1062】[NOI2008]糖果雨【二维树状数组】
- uva10817(注意输入的解决)