A送分的高数题
高数知识
#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve(){
cout << fixed << setprecision(3) << exp(1) << endl;
return;
}
signed main(){
cin.tie(0),cout.tie(0);
ios::sync_with_stdio(false);
int t = 1;
//cin >> t;
while(t--)
solve();
return 0;
}
B打印很难吗
#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve(){
int n;
char ans[15][15];
cin >> n;
//先将所有地方赋值为‘O’字符
for(int i = 1;i <= n;i ++){
for(int j = 1;j <= n;j ++){
ans[i][j] = 'O';
}
}
int mid = n/2+1;//中间行
ans[mid][1] = '#',ans[mid][n] = '#';//先把中间这行填好,n为奇数,一定会有中间行
//然后从中间向两边拓展
for(int i = 1;i <= n/2;i ++){
ans[mid-i][i+1] = '#';
ans[mid-i][n-i] = '#';
ans[mid+i][i+1] = '#';
ans[mid+i][n-i] = '#';
}
//输出答案
for(int i = 1;i <= n;i ++){
for(int j = 1;j <= n;j ++){
cout << ans[i][j];
}
cout << endl;
}
return;
}
signed main(){
cin.tie(0),cout.tie(0);
ios::sync_with_stdio(false);
int t = 1;
//cin >> t;
while(t--)
solve();
return 0;
}
C小曾学长找手机
//直接模拟
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%lld",&n);
int a[105];
int x = 0,y = 0;
for(int i = 1;i <= n;i ++)
scanf("%lld",&a[i]);
for(int i = 1;i <= n;i ++){
if(a[i] == 1)
y ++;//向上则y坐标加一
else if(a[i] == 2)
x ++;//向右则x坐标加一
else if(a[i] == 3)
y --;//向下则y坐标减一
else if(a[i] == 4)
x --;//向右则x坐标减一
if(x == 1&&y == 1){//在模拟的过程中如果到达了(1,1)位置,则直接输出Yes,并结束程序
printf("Yes\n");
return 0;
}
}
//整个过程中都没有到达过(1,1),输出No
printf("No\n");
return 0;
}
D相同的数组
“加一” 会改变元素的奇偶性,奇数索引位置的元素需同步变化。若奇数索引位置中存在两个奇偶性不同的元素,它们的奇偶性就永远无法保持一致,偶数索引位置的元素也是如此。只有当所有奇数索引元素的奇偶性完全相同,且所有偶数索引元素的奇偶性也完全相同时,才符合题意。
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6+5;
int a[N];
signed main(){
int n;
scanf("%lld",&n);
for(int i = 1;i <= n;i ++)
scanf("%lld",&a[i]);
//检查所有奇数索引位置的元素奇偶性是否相同
for(int i = 3;i <= n;i += 2){
if(a[i]%2 != a[i-2]%2){
printf("No\n");
return 0;
}
}
//检查所有偶数索引位置的元素奇偶性是否相同
for(int i = 4;i <= n;i += 2){
if(a[i]%2 != a[i-2]%2){
printf("No\n");
return 0;
}
}
printf("Yes\n");
return 0;
}
E取石子游戏
经典博弈论题目,不会的自己学。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);
ll n;
cin >> n;
if(n%4 == 0)
cout << "xiaohong";
else
cout << "xiaoming";
return 0;
}
F是素数吗

如果n-1是素数,就可以凑出该数。
#include<bits/stdc++.h>
using namespace std;
//判断是不是素数
bool isprime(int x){
if (x <= 1) return false;
for (int i = 2; i * i <= x; i++){
if (x % i == 0) return false;
}
return true;
}
void solve(){
int n;
cin >> n;
if (isprime(n - 1)) cout << "Yes" << endl;
else cout << "No" << endl;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
int t = 1;
//cin >> t;
while(t--){
solve();
}
}
G第k个数
//思维数学题,一个一个去找会超时,推出公式直接输出答案
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N = 1e5+5;
void solve(){
ll n,k;
cin >> n >> k;
//这里自己套几个样例进去进行理解
if(k%(n-1) == 0)
cout << n*k/(n-1)-1 << endl;
else
cout << n*(k/(n-1))+k%(n-1) << endl;
return;
}
int main(){
cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);
ll _ = 1;
//cin >> _;
while(_ --)
solve();
return 0;
}
H前缀合
前缀和板子。
#include<iostream>
using namespace std;
#define ll long long
const ll N=100010;
ll a[N],s[N];
int main(){
cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);
ll n,m;
cin>>n>>m;
for(ll i=1;i<=n;i++){// 从1 开始
cin>>a[i];
}
for(ll i=1;i<=n;i++){// 从1 开始
s[i]=s[i-1]+a[i];
}
while(m--){
ll x,y;
cin>>x>>y;
cout<<s[y]-s[x-1]<<endl;
}
}

Comments NOTHING