2019プラチナスター初の予選最初の質問の多項式


$ \ {色のブルーが} {一時的に私は一つの質問、それの価値を持っていたようだ(霧)} $

アイデア:

誘導体の知識に基づいて(そして唯一のルートなしのログなしでこの機能が良く見える)、xの各時間微分は、各項目の時間を落ちます

もちろん、時間がないを行うには、各アイテムのx 0番目を置くだろう.......

それで、我々は見つけるために、F(x)とg(x)はxの最大期間を置くことができ、長期の多数は時間の最高存在、あろう1/0又は0/1に対応します。

数をf(x)とg(x)の数に等しい場合、次いで、それは、2つの行にGCD求めるだろう!

コードはQAQここに置かれます

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define maxn 1200
#define int long long
using namespace std ;
int T , f[maxn] , f_lop ;
int n , g[maxn] , g_lop ;
signed main() {
    scanf("%d",&T) ;
    while(T --) {
        scanf("%d",&n) ;
        f_lop = g_lop = n-1 ;
        for(int i = 0 ; i < n ; i ++) {
            scanf("%d",&f[i]) ;
        }
        for(int i = 0 ; i < n ; i ++) {
            scanf("%d",&g[i]) ;
        }
        while(!f[f_lop]&&f_lop>0) {
            f_lop --; 
        }
        while(!g[g_lop]&&g_lop>0) {
            g_lop -- ;
        }
        if(f_lop > g_lop) {
            puts("1/0") ;
        }else if(g_lop > f_lop) {
            puts("0/1") ;
        }else {
            int c = __gcd(f[f_lop],g[g_lop]) ;
            cout << f[f_lop]/c << "/" << g[g_lop]/c <<endl ;
        }
    }
    return 0 ;
} 

醜い番号、XDを言い訳してください

おすすめ

転載: www.cnblogs.com/lyt020321/p/11370157.html