您的位置:首页 > 其它

2019牛客寒假算法基础集训4

2019-02-03 01:02 357 查看

题解

A-Applese的取石子游戏

签到题,直接输出Applese即可,如果奇数项的和较大,先手就取第一个,这样每一次轮到后手都只能取到偶数项,反之同理签到题,直接输出Applese即可,\\如果奇数项的和较大,先手就取第一个,这样每一次轮到后手都只能取到偶数项,反之同理签到题,直接输出Applese即可,如果奇数项的和较大,先手就取第一个,这样每一次轮到后手都只能取到偶数项,反之同理

B-Applese走方格

按题意构造即可按题意构造即可按题意构造即可

#include <cstdio>
int n, m;

int main()
{
scanf("%d%d", &n, &m);
if(n == 1) {
if(m == 2) puts("RL");
else puts("-1");
}
else if(m == 1) {
if(n == 2) puts("DU");
else puts("-1");
}
else if(n & 1 && m & 1) puts("-1");
else if(n & 1) {
for(int i = 1; i < m; ++i) printf("R");
for(int i = 1; i < n; ++i) printf("D");
for(int i = 1; i < m; ++i) {
printf("L");
for(int j = 1; j < n - 1; ++j) {
if(i & 1) printf("U");
else printf("D");
}
}
printf("U\n");
}
else {
for(int i = 1; i < n; ++i) printf("D");
for(int i = 1; i < m; ++i) printf("R");
for(int i = 1; i < n; ++i) {
printf("U");
for(int j = 1; j < m - 1; ++j) {
if(i & 1) printf("L");
else printf("R");
}
}
printf("L\n");
}
return 0;
}

E-Applese涂颜色

显然有2n种涂色方法,考虑十进制快速幂显然有2^n种涂色方法,考虑十进制快速幂显然有2n种涂色方法,考虑十进制快速幂

#include <cstdio>
#include <cstring>
#define ll long long
const int MAX_N = 1e5 + 5;
const int mod = 1e9 + 7;

ll mpow(ll a, ll n)
{
ll res = 1;
for(; n; n >>= 1, a = a * a % mod)
if(n & 1) res = res * a % mod;
return res;
}

int main()
{
ll ans = 0;
char a[MAX_N];
scanf("%s%*d", a);
int len = strlen(a);
for(int i = 0; i < len; ++i) {
ans = (ans * 10 + a[i] - '0') % (mod - 1);
}
printf("%lld\n", mpow(2, ans));
return 0;
}

I-Applese的回文串

如果这个串本身就是回文串,答案一定是Yes.否则我们只需要考虑串中对称的位置不相等的两个字符,分别尝试把它们删掉后判断一下是不是回文的就行了.如果这个串本身就是回文串,答案一定是Yes.\\ 否则我们只需要考虑串中对称的位置不相等的两个字符,\\分别尝试把它们删掉后判断一下是不是回文的就行了.如果这个串本身就是回文串,答案一定是Yes.否则我们只需要考虑串中对称的位置不相等的两个字符,分别尝试把它们删掉后判断一下是不是回文的就行了.

#include <iostream>
using namespace std;
const int MAX_N = 1e5 + 5;
string s, t;
int cnt;
bool flag;

bool check(string str)
{
int len = str.length();
int mid = (len + 1) / 2;
for (int i = 0; i < mid; ++i)
if(str[i] != str[len - 1 - i])
return false;
return true;
}

int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> s;
int len = s.length();
if(check(s)) {
puts("Yes");
return 0;
}
for(int i = 0; i < len; ++i) {
if(s[i] != s[len - i -1]) {
cnt = i;
break;
}
}
t = s;
t.erase(cnt, 1);
//cout << t << endl;
if(check(t)) flag = true;
t = s;
t.erase(len - cnt - 1, 1);
//cout << t << endl;
if(check(t)) flag = true;
if(flag) puts("Yes");
else puts("No");
return 0;
}

J-Applese的减肥计划

签到题,余弦定理,cmath库有自带π值M_PI签到题,余弦定理,cmath库有自带\pi 值M\_PI签到题,余弦定理,cmath库有自带π值M_PI

#include <cstdio>
#include <cmath>
#define pi acos(-1.0)
int f1, f2, a;
double ans;

int main()
{
scanf("%d%d%d", &f1, &f2, &a);
ans = sqrt(f1 * f1 + f2 * f2 + 2 * f1 * f2 * cos(1.0 * a / 180 * pi));
printf("%7lf\n", ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: