T1
这道题基本没啥可讲的,除了最后一段都是废话。其实就是个普通的输入输出,十分基础。
注:不开longlong见祖宗
AC代码(仅供参考)
#include<bits/stdc++.h>
using namespace std;
int main(){
long long y,a,x,b;
cin>>a>>x>>b;
cout<<a*x+b;
}
T2
解法1
总的来说,有二种情况。
- a<=c
- a>=c
第一种情况只需要比较b>=a&&b<=c即可
第二种同上b<=a&&>=b即可
AC代码(仅供参考)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
signed main(){
int a, b, c;
cin >> a >> b >> c;
if ((a <= b and b <= c) or (a >= b and b >= c)) {
cout << "Yes\n";
} else {
cout << "No\n";
}
return 0;
}
解法2
当a>c时,交换a,c的值,然后直接按第一种情况判断即可。
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
signed main() {
int a, b, c;
cin >> a >> b >> c;
if (a > c)
swap(a, c);
if (b <= c && b >= a) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
T3
这道题其实就是判断是否为边界的题,一般情况下,为3种。
- 不位于边界
- 位于四个角落
- 位于除顶点外的边
还有一种当n,m,a,b都为1时,没有相邻的同学
AC代码1
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
signed main(){
int N, M, a, b;
cin >> N >> M;
cin >> a >> b;
int sum = 0;
if (a + 1 <= N)
sum++;
if (a - 1 >= 1)
sum++;
if (b + 1 <= M)
sum++;
if (b - 1 >= 1)
sum++;
cout << sum;
}
AC代码2
这是来自某位老师的高端做法,一二阶看看就好。我也不咋懂
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
const int MaxN = 1e6 + 100;
const int INF = 1e9;
int T, N, M;
int dx[5] = { 0, 1, -1, 0, 0 };
int dy[5] = { 0, 0, 0, -1, 1 };
template <class T>
inline void qread(T &sum) {
sum = 0;
int boo = 1;
char x = getchar();
while (x < '0' || x > '9') {
if (x == '-')
boo = -1;
x = getchar();
}
while (x >= '0' && x <= '9') {
sum = (sum << 1) + (sum << 3) + x - '0';
x = getchar();
}
sum *= boo;
}
template <class T>
void qput(T x) {
if (x < 0) {
x = -x;
putchar('-');
}
if (x > 9)
qput(x / 10);
putchar(x % 10 + 48);
}
bool check(int x, int y) {
if (x > N || x < 1 || y < 1 || y > M)
return 0;
return 1;
}
inline void Solve() {
qread(N);
qread(M);
int x, y;
qread(x);
qread(y);
int sum = 0;
for (int i = 1; i <= 4; i++) {
int nx = x + dx[i], ny = y + dy[i];
if (check(nx, ny)) {
sum++;
}
}
qput(sum);
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
T = 1;
while (T--) Solve();
}
T4
其实就是一道找规律的题,这里不在阐述,不会的去Utopia找上帝
AC代码1
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
signed main(){
long long N;
cin >> N;
long long x = (N + 1) / 2;
cout << x * x;
}
AC代码2
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
signed main(){
int a;
cin>>a;
if(a%2==1){int b=(a/2+1)*(a/2+1);
cout<<b;
}
else{int b=(a/2)*(a/2);
cout<<b;
}
return 0;
}
彩蛋