Timus1430(裴蜀定理应用)
生活随笔
收集整理的這篇文章主要介紹了
Timus1430(裴蜀定理应用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:http://acm.timus.ru/problem.aspx?space=1&num=1430
?
題意:給出a,b,N,找出自然數x,y滿足:N-(a*x+b*y)的值最小,如果有多組解是,輸出任意一組。
?
#include <iostream> #include <string.h> #include <stdio.h>using namespace std;void Work(int a,int b,int n) {if(a == 1){printf("%d 0\n",n);return;}if(b == 1){printf("0 %d\n",n);return;}if(a == b){printf("%d 0\n",n/a);return;}bool flag = false;if(a < b){swap(a,b);flag = true;}int x;int minval = (1<<31)-1;int t = min(n/a,b);for(int i=0;i<=t;i++){int tmp = (n-a*i)%b;if(minval > tmp){minval = tmp;x = i;}}if(flag) printf("%d %d\n",(n-a*x)/b,x);else printf("%d %d\n",x,(n-a*x)/b); }int main() {int a,b,n;while(~scanf("%d%d%d",&a,&b,&n)){Work(a,b,n);}return 0; }
?
總結
以上是生活随笔為你收集整理的Timus1430(裴蜀定理应用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2013年长沙网络赛G题
- 下一篇: Timus1286(欧几里德算法的应用)