A.这波啊,这波是…
链接:https://ac.nowcoder.com/acm/contest/5945/A
来源:牛客网
题目描述
“这波啊,这波是肉蛋葱鸡!”
打出口令即可领取签到奖励。
输入描述:
没有输入。
输出描述:
见样例输出。
示例1
输入
non
输出
roudancongji
说明
如果你不知道题目在讲什么也没关系,你只需要输出样例即可通过本题。
思路:
签到题,看懂提就行
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1010;
int a[maxn];
int main()
{
cout << "roudancongji" << endl;
return 0;
}
B.李在赣神魔
链接:https://ac.nowcoder.com/acm/contest/5945/B
来源:牛客网
题目描述
我们要做一个旋转木马! 输入一个n\times nn×n的字符矩阵,将其顺时针旋转90度后输出。
输入描述:
每个测试点仅包含一组输入数据。
第一行一个整数n(1 \leq n \leq 1000)n(1≤n≤1000),表示矩阵大小。
接下来n行,每行一个长度为n的字符串,仅包含小写字母,表示这个矩阵。
输出描述:
输出顺时针旋转90度后的矩阵,行末不要出现多余空格。
示例1
输入
3
aaa
bbb
ccc
输出
cba
cba
cba
思路:
也是个签到题,不需要任何算法知识背景,不多说了
代码:
#include <stdio.h>
main()
{
int n,i,j;
char a[1005][1005],b[1005][1005];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
b[j][n-i-1]=a[i][j];
}
}
for(i=0;i<n;i++)
{
printf("%s\n",b[i]);
}
}
C.电竞希金斯
链接:https://ac.nowcoder.com/acm/contest/5945/C
来源:牛客网
题目描述
大司马绰号“电竞希金斯”,所以他的几何非常好。他发明的“马氏几何”多次挑战牛顿和爱因斯坦的理论,连奥沙利文都直呼内行。
本题就是一道关于计算几何的题目。
给定一条直线ax+by+c=0,请以编号从小到大的顺序输出这条直线经过的象限。
注意,x轴和y轴不属于任何一个象限,第一象限为x,y>0的区域,第二象限为x<0,y>0的区域,第三象限为x,y<0的区域,第四象限为x>0,y<0的区域。
输入描述:
每个测试点仅包含一组输入数据。
仅一行空格隔开的三个整数a,b,c(-100 \leq a,b,c \leq 100)a,b,c(−100≤a,b,c≤100)
其中a和b不会同时等于0
输出描述:
一行,按照顺序输出经过的象限。
如果直线不经过任何象限,请输出"non"。
示例1
输入
1 2 3
输出
2 3 4
思路:
简单的数学题,没啥好说的…
代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a == 0) {
if (c == 0)cout << "non" << endl;
else {
if (b * c > 0)cout << "3 4" << endl;
else cout << "1 2" << endl;
}
}
else if (b == 0) {
if (c == 0)cout << "non" << endl;
else {
if (a * c > 0)cout << "2 3" << endl;
else cout << "1 4" << endl;
}
}
else {
if (c == 0)
if (a * b > 0)cout << "2 4" << endl;
else cout << "1 3" << endl;
else {
if (a * b < 0) {
if (b * c < 0)cout << "1 2 3" << endl;
else cout << "1 3 4" << endl;
}
else {
if (b * c < 0)cout << "1 2 4" << endl;
else cout << "2 3 4" << endl;
}
}
}
return 0;
}
D.财富密码
链接:https://ac.nowcoder.com/acm/contest/5945/D
来源:牛客网
题目描述
“我们厦大的ACM实在是太厉害了”
在我校无数的菜鸡中,这句话打开了财富之门,因此被称为财富密码。
事实上,关于密码学的研究里面有很多涉及到数论的知识,以下就是一道例题。
求有多少整数n(1 \leq n \leq x)n(1≤n≤x)满足na^{n} \equiv b (mod \ p)na
n≡b(mod p),其中p是一个质数。
看到这里你可能认为我会解释上述符号的意思,然而如果你看不懂上面的式子,那么我不建议你尝试这道题目,所以这里没有解释。
输入描述:
每个测试点仅包含一组输入数据。
第一行,四个以空格隔开的正整数,分别表示a,b,p,x(2 \leq p \leq 10^6,1 \leq x \leq 10^{12},1 \leq a,b < p)a,b,p,x(2≤p≤10 6,1≤x≤10 12,1≤a,b<p)
输出描述:
一个正整数,符合条件的n的个数。
示例1
输入
2 3 5 8
输出
2
思路:
需要一些简单的数论知识:
费马小定理:若 p为质数,而整数a不是 p的倍数,则 。
逆元:定义整数 a 在模 p 意义下的逆元为 x,则 ,
可记作 。
在 1条件下,有 。
因为 。
然后到这道题:
首先由 费马小定理 可以得到 ,
因此可以设 。
然后推式子: