Codeforces Round #716 (Div. 2) ABC
作者:互联网
https://codeforces.com/contest/1514
A. Perfectly Imperfect Array
题意:给出n个数组成的序列a,问是否存在一个子序列,使得子序列的元素乘积不是完全平方数。
思路:只要存在一个数不是完全平方数就可以。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 111;
int n, t;
int a[maxn];
int main()
{
cin >> t;
while(t--)
{
cin >> n;
int flag = 0;
for(int i = 1;i <= n; i++)
{
cin >> a[i];
int k = sqrt(a[i]);
if(k * k != a[i]) flag = 1;
}
if(flag) puts("YES");
else puts("NO");
}
return 0;
}
B. AND 0, Sum Big
题意:给出n和k,求满足条件且元素个数为n的序列个数。条件有三:①所有元素都是[0, 2^k - 1]的整数;②所有元素与操作之后为0; ③所有元素之和尽可能大。答案模1e9 + 7;
思路:只要每一位有0就可以满足②,想满足③的话就贪心地每一位只取一个0,一共k位,每一位有n种选择,所以方案数是n^k种。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
const int mod = 1e9 + 7;
const int N = 1e5, M = 1e6;
int t, n, k;
int qmi(int a, int m)
{
int res = 1;
while(m)
{
if(m & 1) res = (ll)res * a % mod;
a = (ll)a * a % mod;
m >>= 1;
}
return res;
}
int main()
{
cin >> t;
while(t--)
{
cin >> n >> k;
cout << qmi(n, k) << endl;
}
return 0;
}
C. Product 1 Modulo N
题意:给出n,求[1, n - 1]中乘积mod n余1的最长子序列。
思路:看了大佬的博客,我果然做不出C题qwq
这里是大佬的博客_(:з」∠)_
我只想到要选和互质的数,剩下的就不知道怎么办了。
求出所有和n互质的数的mod n的乘积,如果刚好是1,那就皆大欢喜直接全部选中;如果不是1把它除掉就好了这思路太巧秒了(我咋就没想到呢呜呜呜)
再次膜拜一下大佬orz
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
int gcd(int x, int y)
{
if(x % y == 0) return y;
return gcd(y, x % y);
}
int ans[maxn], idx;
int main()
{
int n;
cin >> n;
int res = 1;
for(int i = 1;i <= n - 1; i++)
{
if(gcd(i, n) == 1)
{
ans[++idx] = i;
res = (ll)res * i % n;
}
}
if(res == 1)
{
cout << idx << endl;
for(int i = 1;i <= idx; i++)
cout << ans[i] << ' ';
}
else
{
cout << idx - 1 << endl;
for(int i = 1;i <= idx; i++)
{
if(ans[i] != res) cout << ans[i] << ' ';
}
}
return 0;
}
标签:ABC,int,716,ll,cin,long,res,Div,include 来源: https://blog.csdn.net/qq_45664326/article/details/116517245