一、小乐乐改数字
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
string s;
while (num)
{
s.insert(s.begin(), num % 10 + '0');
num /= 10;
}
for (auto& i : s)
{
if ((i - '0') % 2 == 0)
i = '0';
else
i = '1';
}
cout << stoi(s);
}
二、十字爆破
直接把每行每列存一下
// 64 位输出请用 printf("%lld")
#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
vector<long long>* v = new vector<long long>[n];
vector<long long> col;
vector<long long> cls;
col.resize(n);
cls.resize(m);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
long long x;
cin >> x;
v[i].push_back(x);
col[i]+=x;
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cls[i] += v[j][i];
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%ld ", cls[j] + col[i] - v[i][j]);
}
printf("\n");
}
}
三、比那名屋的桃子
滑动窗口
#include<iostream>
using namespace std;
#include<vector>
int main()
{
int day, n;
cin >> day >> n;
vector<int> value;
vector< long long> v;
vector<int> devalue;
vector<long long> dv;
int maxday = 1;
long long maxvalue = 0;
long long mindevalue = 0;
long long s = 0;
int sum = 0;
for (int i = 0; i < day; i++)
{
int x;
cin >> x;
value.push_back(x);
s += x;
sum++;
if (sum == n)
{
v.push_back(s);
s -= value[i - n + 1];
sum--;
}
}
int i = day - n + 1 >= 0 ? day - n + 1 : 0;
for (i; i < day; i++)
{
v.push_back(s);
s -= value[i];
}
s = 0;
sum = 0;
for (int i = 0; i < day; i++)
{
int x;
cin >> x;
devalue.push_back(x);
s += x;
sum++;
if (sum == n)
{
dv.push_back(s);
s -= devalue[i - n + 1];
sum--;
}
}
i = day - n + 1 >= 0 ? day - n + 1 : 0;
for (i; i < day; i++)
{
dv.push_back(s);
s -= devalue[i];
}
int maxd = 1;
long long maxv = v[0];
long long mindev = dv[0];
for (int i = 1; i < day; i++)
{
if (v[i] == maxv)
{
if (dv[i] < mindev)
{
maxd = i + 1;
maxv = v[i];
mindev = dv[i];
}
}
if (v[i] > maxv)
{
maxd = i + 1;
maxv = v[i];
mindev = dv[i];
}
}
cout << maxd;
}