2019百度之星初赛1
生活随笔
收集整理的這篇文章主要介紹了
2019百度之星初赛1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
太菜了,只做對了第一題,然而第一題還做了40分鐘,大佬只需2分鐘
我原來把數據的順序看反了,他是先輸入個位再十位,我先十位再個位了
A Polynomial
水題,學過高數就會,就是取極限
傳送門
反著存數據,然后計算最高位開始0的個數
如果0的個數相同,就輸出最高非0數的約分比(除以gcd)
len1和len2
len1大,即分子的前幾位0多
輸出0/1
len2大,輸出
1/0
E Seq
傳送門
我找規律時用得是5的倍數或者10的倍數,沒想到是6的倍數,所以規律題要把1-10的倍數都嘗試一下
看數據大小就知道不能暴力,那肯定是規律題,先把前幾項輸出找規律
枚舉求前幾項
#include <iostream> #include <cstdio> #include <algorithm> #define ll long long using namespace std; int main(){int n;cin>>n;int a[10005];a[1]=1;for(int i=2;i<=n;i++){a[i]=0;for(int j=1;j<i;j++){a[i]+=a[j]*j;}a[i]%=i;}for(int i=1;i<=n;i++){printf("%3d",a[i]);if(i%6==0)putchar('\n');}return 0; }輸出
601 1 0 3 0 35 4 1 9 1 69 7 2 15 2 913 10 3 21 3 1217 13 4 27 4 1521 16 5 33 5 1825 19 6 39 6 2129 22 7 45 7 2433 25 8 51 8 2737 28 9 57 9 30發現n
如果是6的倍數,就輸出n/2 如果是6的倍數-1,就輸出n/6 如果是6的倍數-2,就輸出n/3*3 如果是6的倍數-3,就輸出n/6 如果是6的倍數-4,就輸出n/6*3+1 如果是6的倍數-5,就輸出n/6*4+1提交代碼
#include <iostream> #include <cstdio> #include <algorithm> #define ll long long using namespace std; int main(){int t;cin>>t;while(t--){ll n;scanf("%lld",&n);switch(n%6){case 1:printf("%lld\n",n/6*4+1);break;case 2:printf("%lld\n",n/6*3+1);break;case 3:printf("%lld\n",n/6);break;case 4:printf("%lld\n",n/3*3);break;case 5:printf("%lld\n",n/6);break;case 0:printf("%lld\n",n/2);break;}}return 0; }轉載于:https://www.cnblogs.com/Emcikem/p/11371807.html
總結
以上是生活随笔為你收集整理的2019百度之星初赛1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: step5 . day4 网络编程 基于
- 下一篇: Codeforces Round #57