(以“分类:简单数学问题 ==摘要== {{信息题|Routine Problem|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70748#problem/J|1|100|输出顺序|1|t...”为内容创建页面) |
小 (→摘要: AC) |
||
| (未显示1个用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
[[分类:简单数学问题]] | [[分类:简单数学问题]] | ||
==摘要== | ==摘要== | ||
| − | {{信息题|Routine Problem|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70748#problem/J|1|100 | + | {{信息题|Routine Problem|http://acm.hust.edu.cn/vjudge/contest/view.action?cid{{=}}70748#problem/J|1|100|time=2015-02-27 12:27:09}} |
*来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70748 2015 Winter Day 4 div1] J题 | *来自寒假练习:[http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70748 2015 Winter Day 4 div1] J题 | ||
*原题链接:http://codeforces.com/problemset/problem/337/B | *原题链接:http://codeforces.com/problemset/problem/337/B | ||
| + | |||
==题意== | ==题意== | ||
给出屏幕分辨率a:b和视频分辨率c:d,求黑边分辨率占全屏的面积。 | 给出屏幕分辨率a:b和视频分辨率c:d,求黑边分辨率占全屏的面积。 | ||
| 第19行: | 第20行: | ||
*把c0和d0约分即可 | *把c0和d0约分即可 | ||
*c拉伸到a也是类似的: | *c拉伸到a也是类似的: | ||
| − | c0=a; | + | c0=a; |
| − | d0=a*d/c; | + | d0=a*d/c; |
| − | a0=a; | + | a0=a; |
| − | b0=b; | + | b0=b; |
*乘以c约分即可: | *乘以c约分即可: | ||
| − | c0=a*c; | + | c0=a*c; |
| − | d0=a*d; | + | d0=a*d; |
| − | a0=a*c; | + | a0=a*c; |
| − | b0=b*c; | + | b0=b*c; |
==代码== | ==代码== | ||
{{折叠|337B.java代码已折叠 | {{折叠|337B.java代码已折叠 | ||
| 题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 需要注意 |
|---|---|---|---|---|---|
| Routine Problem | ★☆☆☆☆ | 答案正确 | 100 | 2015-02-27 12:27:09 | 无 |
给出屏幕分辨率a:b和视频分辨率c:d,求黑边分辨率占全屏的面积。
c0=b*c/d; d0=b; a0=a; b0=b;
c0=c*b; d0=b*d; a0=a*d; b0=b*d;
c0=a; d0=a*d/c; a0=a; b0=b;
c0=a*c; d0=a*d; a0=a*c; b0=b*c;
| 337B.java代码已折叠
展开折叠内容
|
|---|
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
#include<iomanip>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<bitset>
#include<set>
#include<sstream>
#include<utility>
using namespace std;
//数据类型//
#define llu unsigned long long
#define lld long long
//定义默认类型//
typedef lld num;
#define dsi(n) num n;scanf("%lld",&n)
#define si(n) scanf("%lld",&n)
//其它//
#define reset(x) memset(x,0,sizeof(x))
#define ci const num&
#define sqr(x) ((x)*(x))
#define f(i,n) for(num i=1;i<=n;++i)
#define ff(i,r,n) for(num i=r;i<=n;++i)
#define fi(n) f(i,n)
#define f0(i,n) for(num i=0;i!=n;++i)
#define fd(i,n) for(num i=n;i>=1;--i)
#define foreach(i,s) for(typeof(s.begin()) i=s.begin();i!=s.end();++i)
#define rforeach(i,s) for(typeof(s.rbegin()) i=s.rbegin();i!=s.rend();++i)
#define iforeach(i,s) int idx=0;for(typeof(s.begin()) i=s.begin();i!=s.end();++i,++idx)
#define Vector2 pair<num,num>
#define vector2(x,y) make_pair(x,y)
#define x first
#define y second
void printD(num x,num y)
{
if(x==0){cout<<"0/1"<<endl;return;}
for(int i=2;i<=x;++i)//fixed:from2避免死循环//
{
while(y%i==0&&x%i==0)
y/=i,x/=i;
}
cout<<x<<"/"<<y;
}
int main()
{
dsi(a);
dsi(b);
dsi(c);
dsi(d);
if(a*d>b*c)//右边空隙,上下补足//
{
printD(a*d-c*b,a*d);
}
else
{
printD(c*b-a*d,c*b);
}
return 0;
}
|