總體來說菜得很…D題有點思路但是實現不了。。。
Two Regular Polygons
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n,m;
int main()
{
cin>>t;
while(t--)
{
cin>>n>>m;
if(n%m==0) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
Bogosort
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+5;
int t,n,m;
int a[N];
int main()
{
cin>>t;
while(t--)
{
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
for(int i=n-1;i>=0;i--)
cout<<a[i]<<' ';
cout<<endl;
}
return 0;
}
Adding Powers
對於給定一個數x,如果x可以展開成底數k的冪的和的形式,那麼 x % k = 1 或 x % k = 0。只要想到這點就行了,然後按照k進制算就行了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1010,mod=1e9+7;
int t,n,m,k;
ll a[N],cnt[N];
int main()
{
cin>>t;
while(t--)
{
cin>>n>>k;
for(int i=0;i<n;i++) cin>>a[i];
bool flag=0;
for(int i=0;i<n;i++)
if(a[i])
flag=1;
if(!flag)
{
cout<<"YES"<<endl;
continue;
}
memset(cnt,0,sizeof cnt);
for(int i=0;i<n;i++)
{
for(int j=0;j<100;j++)
{
cnt[j]+=a[i]%k;
a[i]/=k;
}
}
for(int i=0;i<100;i++)
if(cnt[i]>1)
flag=0;
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
Count the Arrays
先放一下,這有個盧卡斯定理,等小編整理一下再發