NOIP 2018模擬賽(數學 打表) 2018 11 3 B組 Day1 T1
阿新 • • 發佈:2018-12-19
1.傅立葉(fft.c/fft.cpp/fft.pas)
【題目背景】
std最近在基房學到了著名的快速傅立葉變換(FFT)。學校
然而std太弱了,調一道模板題還調了兩個小時······
然後,他發現,課後例題第一道他就不會做······
於是他找到了你,請你幫幫他。已經AK了NOIP2018的
【題目描述】
這是一道計算兩個正整數乘法的題:
設A=3333···3334(n-1個3),B=3333···3333(m個3)
求A*B。
【輸入輸出格式】
【輸入格式】
輸入的第一行有兩個正整數n,m。
【輸出格式】
輸出一行,為A*B。
【輸入輸出樣例】
【輸入#1】
1 1
【輸出#1】
12
【提示】
共25個測試點,資料有梯度。
對於4%的資料,1<=m,n<=9。
對於32%的資料,1<=m,n<=10^4。
對於另外8%的資料,m=n。
對於100%的資料,1<=m,n<=5*10^6。
演算法:數學+打表(一會給你們附上表格)
難度:NOIP T1
程式碼如下:
#include <cstdio> #include <iostream> #include <cstring> #include <cmath> #include <cstdlib> #include <algorithm> #include <queue> #define ll long long #define N 105 using namespace std; int main() { freopen("fft.in","r",stdin); freopen("fft.out","w",stdout); int n,m; scanf("%d%d",&n,&m); if(n==m) { for(int i = 1;i <= n;i++) { printf("1"); } for(int i = 1;i <= n;i++) { printf("2"); } }else if(m>n) { for(int i = 1;i <= n;i++) { printf("1"); } for(int i = 1;i <= m-n;i++) { printf("3"); } for(int i = 1;i <= n;i++) { printf("2"); } }else if(m<n) { for(int i = 1;i <= m;i++) { printf("1"); } for(int i = 1;i <= n-m;i++) { printf("0"); } for(int i = 1;i <= m;i++) { printf("2"); } } return 0 ; }