題目描述
在社交**上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498:902。
不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這個例子,如果把比例記為5:3,雖然與真實結果有一定的誤差,但依然能夠較為準確地反映調查結果,同時也顯得比較直觀。
現給出支援人數a,反對人數b,以及乙個上限l,請你將a比b化簡為a』比b』,要求在a』和b』均不大於l且a』和b』互質(兩個整數的最大公約數是1)的前提下,a』/b』 ≥ a/b且a』/b』 - a/b的值盡可能小。
(本題目為2014noip普及t2)
輸入輸出格式
輸入格式:
輸入共一行,包含三個整數a,b,l,每兩個整數之間用乙個空格隔開,分別表示支援人數、反對人數以及上限。
輸出格式:
輸出共一行,包含兩個整數a』,b』,中間用乙個空格隔開,表示化簡後的比例。
輸入輸出樣例
輸入樣例#1:
1498 902 10
輸出樣例#1:
5 3
說明對於100%的資料,1 ≤ a ≤ 1,000,000,1 ≤ b ≤ 1,000,000,1 ≤ l ≤ 100,a/b ≤ l。
【分析】
暴力列舉…
【**】
//noip 2013 華容道
#include
#include
#include
#include
#include
#include
#define mp make_pair
#define m(a) memset(a,0,sizeof a)
#define fo(i,j,k) for(i=j;i<=k;i++)
using
namespace
std;
int n,m,q,ex,ey,sx,sy,tx,ty,ans;
vector
< pair > f[35][35];
struct node ; //目標棋子座標,空白格仔相對座標,當前移動時間
//1上 2下 3左 4右
intmap[35][35],dis[35][35];
int hox[5]=,hoy[5]=;
bool vis_bfs[35][35][5],vis_spfa[35][35];
inline
int spfa(int stx,int sty,int edx,int edy,int vix,int viy)
if(dis[edx][edy]<100000) return dis[edx][edy];}}
return
100000;
}inline
void bfs(int x,int y)
),vis_bfs[x-1][y][2]=1;
if(map[x+1][y])
que.push(node),vis_bfs[x+1][y][1]=1;
if(map[x][y+1])
que.push(node),vis_bfs[x][y+1][3]=1;
if(map[x][y-1])
que.push(node),vis_bfs[x][y-1][4]=1;
while(!que.empty())
);if(vx==tx && vy==ty)
ans=min(ans,nul);}}
}}int main()
while(q--)
bfs(sx,sy);
if(ans<100000) printf("%d\n",ans);
else
printf("-1\n");
}return
0;}
洛谷 P2118 比例簡化
在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這...
洛谷 P2118 比例簡化
在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這個...
洛谷P2118 比例簡化 暴力
在社交 上,經常會看到針對某乙個觀點同意與否的民意調查以及結果。例如,對某一觀點表示支援的有1498 人,反對的有 902人,那麼贊同與反對的比例可以簡單的記為1498 902。不過,如果把調查結果就以這種方式呈現出來,大多數人肯定不會滿意。因為這個比例的數值太大,難以一眼看出它們的關係。對於上面這...