你在最后那场博弈中败下阵来,却意外穿越到了海拉尔大陆!是你吗林克?
初来到海拉尔大陆的你,有些许的局促,但当你看到塔,或许一切的一切都迎刃而解。
一个层高为n的字母塔的定义为:
共n行,由字母组成的等腰三角形。
塔顶为第一层,且只有一个大写字母A;下面每一层都比上面一层多两个字母。
每一层都是左右对称。
对于第i层,前i个字母由大写字母表中A~第i个字母顺序组成。
为了稳住局面,样例给出了层高为5的字母塔,请你输出层高26的字母塔。
#include
/***********************************
观察题目样例给出的高为5层的塔,可以得出以下几个规律
对于一个高为n层的塔而言,首先设最上面一层(顶层)为第一层。
1. 对于第i层而言,其字符的排列规律为:大写字母表中从第1个字符(A)~第i个字符,后又倒序从第i-1个字符~第1个字符(A)。
2. 第1~n-1层每层前都有空格,具体而言,对于第i行,字符前面的空格个数为n-i个。
找出以上规律后,我们就可以根据这些规律构造出答案:层高26的塔。
TIPS:
大写字母'A'为大写字母表第一个字符
对于大写字母表中第i个字符,可以使用'A'+i-1得到。
例如:第5个字符为'E',亦即为:'A'+5-1
***********************************/
int main() {
char c1;
int n = 26; //设定塔的层数为26
int i, j;
for (i = 1; i <= n; i++) {
//对塔每一层按照规律进行构造。
//首先进行输出空格的操作:对于第i行,字符前面的空格个数为n-i个。
for (j = 1; j <=n-i; j++)
printf(" ");
for (j = 1; j <= i; j++) {
//按照规律1,输出第1~第i个大写字母。
c1 = j + 'A' - 1; //第j个大写字母为'A'+j-1
printf("%c", c1); //输出第j个大写字母
}
for (j = i-1; j >= 1; j--) {
//按照规律1,输出第i-1~第1个大写字母,注意是倒序
c1 = j+'A'-1;
printf("%c", c1);
}
printf("\n");//第i行输出结束,进行换行。
}
return 0;
}
题目描述:
看着林林色色的塔,你的心里有些许的安稳,在询问路人时你得知了,你正身处「卡卡利科村」,似乎帕雅也在那里?
好久没有偷窥帕雅的日记了
你喜欢偷窥帕雅日记一事已广为人知,帕雅特地在日记本上加了密。
加密的方式很简单:对于一串字符串,如果其中有l,i,n,k,e这五个字母当中的任意一个,帕雅都会在这后面加上bt再加上原来的字母已加密,如love就会加密成lbtlovebte。
下面给出帕雅日记的第一页内容,请你根据他的日记内容进行解密。
ibti lbtlovebte lbtlibtinbtnkbtkebtezbas jebte dosadnbtna ovakbtkebtemibtijaxaszxdbtddbtddbtddbtddbtddbtd
注意上面内容为一行内容,没有任何换行,若网页显示多行只是文本显示宽度问题。
建议查看PDF。
但这能拦得住你吗?时间紧迫,快解密吧!
#include
#include
#include
#include
#include
#include
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
const int Max = 1e6 + 5;
ll lst[Max];
int main()
{
string str = "ibti lbtlovebte lbtlibtinbtnkbtkebtezbas jebte dosadnbtna ovakbtkebtemibtijaxaszxdbtddbtddbtddbtddbtddbtd";
string ans = "";
for (int i = 0;i <= str.size() - 1;i++)
{
ans += str[i];
if (str[i] == 'l'||str[i]=='i'||str[i]=='n'||str[i]=='k'||str[i]=='k'||str[i]=='e')i+=3;
}
cout << ans;
}
题目描述:
您是一个神仙,但您很喜欢采药。
您有一个神奇的背包,背包内有VV个格子。
您所在的空间内有一些药,每个药会占用 11 或 22 个格子。
每天可以进行一次如下操作:
采摘一个药材放入背包中,若此时背包中没有多余的格子来放入新的药材,可以先将背包中的若干药材扔出去,至于扔多少以及扔几个,全都由您决定。当然您也可以选择不去进行采摘操作。
每一天结束前,神奇背包中的每个药材都会产生一个药丸。
作为神仙,您知道每天您可以采摘的药材类型(即占用格子数目),注意,当天的药材如果不采摘,在第二天就会消失(当天药材仅限当天采摘)。
为了获得尽可能多的药丸,请您计算最终能获得的药丸数目最多是多少?
贪心,体积还剩时有多少取多少,当体积不够后再将体积2的扔掉取体积1的,注意答案会爆int。
#include
#include
#include
#include
#include
#include
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
const int Max = 1e6 + 5;
ll lst[Max];
int main()
{
ll v;cin >> v;
ll ans = 0, sumv = 0, numz = 0, num2 = 0;
string str;cin >> str;
for (ll i = 0;i < str.size();i++)
{
ll p = str[i] - '0';
if (p + sumv <= v)
{
if (p == 2)num2++;
numz++;
sumv += p;
}
else
{
if (num2 >= 1 && p == 1)
{
sumv--;
num2--;
}
}
ans += numz;
}
cout << ans;
}
题目描述:
这题是个签到题。
有一个 A×B 的大澡盆,还有若干个a×b的长方形小鸭子,澡盆里最少放几只鸭子后,便无法再向其中放入更多的鸭子?
鸭子很倔强,不能旋转成 b * a ,也不能重叠放置
#include
#include
#include
#include
#include
#include
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
const int Max = 1e6 + 5;
ll lst[Max];
int main()
{
ll x, y, a, b;cin >> x >> y >> a >> b;
ll ans = 0;
ll h = x / (a + a), s = y / (b + b);
if (x % (a + a) >= a)h++;
if (y % (b + b) >= b)s++;
cout << h * s;
return 0;
}
YE5和N0注意!
#include
#include
#include
#include
#include
#include
#include
#define pii pair<int,int>
#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
typedef long long ll;
const int Max = 1e6 + 5;
int lst[Max];
int main()
{
int n, x, y;cin >> n >> x >> y;
double sum = n, yu = n;
int s = 0;
for (int i = 1;i <= y;i++)
{
s++;
sum = sum * 2 / 3;
if (s >= x)
{
sum += yu / 2;
s = -199999;
}
if (sum < n / 32)
{
cout << "N0!" << endl;
cout << i << " " << fixed << setprecision(6) << sum;
return 0;
}
}
cout << "YE5!" << endl;
cout << fixed << setprecision(6) << sum;
return 0;
}
字符串:待补…