《看了受制了》第六天,4道题,合计30道题
2023年8月31日
今天是ACwing的周赛题,和AtCoder。太晚了,还得去211宿舍,就只做4道了。
ACWING5044 求和
题目理解
简单的求和判断,可以作为小孩儿讲课题。
代码实现
#include<iostream>
using namespace std;
int main()
{
int n;
cin >> n;
while(n -- )
{
int l, r;
cin >> l >> r;
int sum = 0;
while(l --)
{
int a;
cin >> a;
sum += a;
}
if(sum == r)
cout << "YES";
else
cout << "NO";
cout << endl;
}
return 0;
}
ACWING5045 三角形数
题目理解
这个题我用的是双指针。因为我们进行初次判断后发现小于1e9
那么最多只有,44720个数字。然后只要q[i] + q[j] > n
的就让j--
即可。
代码实现
#include<iostream>
#include<vector>
using namespace std;
// 一共有44720个数
vector<int> q;
int n;
int main()
{
cin >> n;
int k = 1, p = 2;
while(k < n)
{
q.push_back(k);
k += p;
p++;
}
int flag = 0;
for(int i = 0, j = q.size() - 1; i <= j; i++)
{
while(q[i] + q[j] > n)
j--;
if(q[i] + q[j] == n)
{
flag = 1;
break;
}
}
if(flag)
cout << "YES";
else
cout << "NO";
return 0;
}
AtCoder ABC101 A题
题目理解
模拟题
代码实现
#include<iostream>
using namespace std;
int main()
{
string n;
cin >> n;
int res = 0;
for(int i = 0; i < n.size(); i++)
if(n[i] == '-')
res--;
else
res++;
cout << res;
return 0;
}
AtCoder ABC101 B题
题目理解
是个小模拟题,方法都是非常ez的。
代码实现
#include<iostream>
using namespace std;
int main()
{
string s;
cin >> s;
int sum = 0;
int num = 0;
for(int i = 0; i < s.size(); i++)
{
sum += ((int)s[i]) - 48;
num = num * 10 + (((int)s[i]) - 48);
}
if(num % sum == 0)
cout << "Yes";
else
cout << "No";
return 0;
}