AB没有意义,上代码

A小红的新周赛

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main()
{
ll a,b,c,d,e,f,g;
cin>>a>>b>>c>>d>>e>>f;
cout<<a+b+c+d+e+f<<endl;
}

B小红的字符串

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main()
{
string s;
cin>>s;
vector<string>v;
for(int i=0;i<s.size()-1;i++)
{
string s1="";
char c1=s[i],c2=s[i+1];
s1+=c1;
s1+=c2;
v.emplace_back(s1);
}
sort(v.begin(),v.end());
for(int i=0;i<v.size();i++)
{
cout<<v[i]<<endl;
}
}

C小红的炸砖块

题意:给一个全是石头的矩阵,小红会随机仍炸弹到矩阵里,被炸的地方上面的石头会下来

思路:模拟,被扔的地方向上搜索,直到顶部进行标记,假如遇到已经被标记的地方,在标记下面再标记

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mp[2000][2000];
signed main()
{

memset(mp, 0, sizeof(mp));
ll n, m, k;
cin >> n >> m >> k;
for (int i = 1; i <= k; i++) {
ll a, b;
cin >> a >> b;
if(mp[a][b]==1)continue;;
while (1)
{

if (mp[a][b] == 1)
{
mp[a+1][b ] = 1;
break;
}
if (a == 1&&mp[a][b]==0)
{
mp[a][b] = 1;
break;
}
a--;
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (mp[i][j] == 1)
{
cout << '.' ;
}
else
{
cout << '*';
}
}
cout << endl;
}
}

D小红统计区间(easy)

题意:给一个数组,判断有多少个区间满足区间和大于等于k

思路:本来一看就觉得是线段树,可惜完全忘记线段树咋写了,最后用双指针写的

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
ll n, k;
cin >> n >> k;
vector<ll> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}

vector<ll> prefixSum(n+1, 0);
for (int i = 1; i <= n; i++) {
prefixSum[i] = prefixSum[i-1] + a[i-1];
}

ll left = 0, right = 1;
ll ans = 0;
while (right <= n) {
ll currentSum = prefixSum[right] - prefixSum[left];
if (currentSum >= k) {
ans += n - right + 1;
left++;
} else {
right++;
}
}

cout << ans << endl;

return 0;
}

posted on 2024-01-15 22:12  塔罗-太阳  阅读(14)  评论(0)    收藏  举报