A——連接:https://www.nowcoder.net/acm/contest/75/A
來源:牛客網
c++
第一行是一個整數t(0<t<=1000000)(表示t組數據)
接下來t行,每一行有一個整數n(0<=n<=10000000)
輸出n!在8進制下的位數。
3 4 2 5
2 1 3
#include<bits/stdc++.h> using namespace std; #define ull unsigned long long const double Pi = asin(1.0)*2; typedef long long ll; const double e = 2.718281828459; const int inf = 0x3f3f3f3f; const int moder = 1e9 + 7; const int MAXN=1000000; int main() { int t; scanf("%d", &t); double temp = log(8); while(t--) { int n; scanf("%d",&n); if(n == 0 || n == 1) cout << 1 << endl; else { double ans = ((log(2*n*Pi)/2)+n*(log(n/e)))/temp + 1; printf("%d\n", (int)ans); } } return 0; }
媽的,用cin超時了,花了我一個小時。測試
B——連接:https://www.nowcoder.net/acm/contest/75/B
來源:牛客網
spa
第一行是正整數k(k<=100000)
接下來k行,每行有倆個正整數a,r(100000>a>r>=0)
在每一個測試用例輸出非負整數m,佔一行。
若是有多個可能的值,輸出最小的值。
若是沒有可能的值,則輸出-1。
2 8 7 11 9
31
#include<bits/stdc++.h> using namespace std; #define ull unsigned long long typedef long long ll; const int inf = 0x3f3f3f3f; const int moder = 1e9 + 7; const int MAXN=100005; ll extgcd(ll a,ll b,ll &x,ll &y) { ll d = a; if(b == 0) { x = 1; y = 0; } else { d = extgcd(b,a%b,y,x); y -= (a/b)*x; } return d; } ll solve(ll a[],ll r[],ll n) { ll d,c,i,x,y,t; for(i=1;i<n;i++) { c=r[i]-r[i-1]; d=extgcd(a[i-1],a[i],x,y); if(c%d!=0) return -1; t=a[i]/d; x=(x*(c/d)%t+t)%t; r[i]=a[i-1]*x+r[i-1]; a[i]=a[i-1]*(a[i]/d); } return r[n-1]; } int main() { ll n; ll a[MAXN]; ll r[MAXN]; cin >> n; for(int i=0;i < n;i++) { cin >> a[i] >> r[i]; } ll ans = solve(a,r,n); cout << ans << endl; return 0; }
線性同餘方程組裸題.net
D——連接:https://www.nowcoder.net/acm/contest/75/D
來源:牛客網
code
輸入包括多組測試數據
每組測試數據一個n(1≤n≤1e9)
每組用一行輸出勝利者的名字(小牛獲勝輸出XiaoNiu,小客獲勝輸出XiaoKe)
2 3
XiaoNiu XiaoKe
#include<bits/stdc++.h> using namespace std; #define ull unsigned long long typedef long long ll; const int inf = 0x3f3f3f3f; const int moder = 1e9 + 7; const int MAXN=1000010; int main() { ll n; while(cin >> n) { if(n > 2) cout << "XiaoKe" << endl; else { cout << "XiaoNiu" << endl; } } return 0; }
博弈orm