M题
圣诞节就快要到来了,为了班里的圣诞晚会,同学们都在准备各自的节目,学姐们个个心灵手巧,将教室装扮地充满了节日气氛。学长们呢,打算采购一条彩灯树,让教室的天花板也亮起来。
一共有四个学长,分别是:zzf,lyx,lmh和ry。他们各自买的灯型号不同:
zzf买的灯可以发出红、黄 22 种颜色的光;
lyx买的灯可以发出红、黄、蓝 33 种颜色的光;
lmh买的灯可以发出红、黄、绿、蓝 44 种颜色的光;
ry买的灯可以发出红、橙、黄、绿、蓝、靛、紫 77 种颜色的光。
已知每个灯泡要么不亮,亮的时候就 随机 发出一种它所能发出的光。 \sout{(我也不知道是什么原理…)}
(我也不知道是什么原理…)
他们一共买了 NN 层灯泡。每层的个数为层数的 平方 ,NN 层灯泡的下标为 11 到 NN,按照zzf的灯,lyx的灯,lhm的灯,ry的灯的顺序串联,即前五层每层灯颜色种类的顺序为 2、3、4、7、22、3、4、7、2 ,以此类推。
输入
输入 NN 、 MM ,代表有 NN 个灯泡, MM 个开关;
接下来 MM 行,每行给出两个整数 ll 和 rr 。
1 \leq N \leq 10^41≤N≤10
4
1 \leq M \leq 10^41≤M≤10
4
1 \leq l_i \leq r_i \leq N1≤l
i
≤r
i
≤N
输出
输出一行,两个整数,表示亮着的灯的个数和颜色种数。
样例
输入复制
6 3
1 1
2 6
3 6
输出复制
5 162
//压轴的看不太懂。。。。有大哥写出来可以分享下。。
N题
描述
桌子上放的有nn张牌,每一张牌都不一样,从11到nn。起初牌按照给定的顺序排列。然后我们按照下面规定的方式进行洗牌。在每次操作中,我们会抽出一张牌,把它放到最前面的位置,然后重复此操作mm次。请输出这nn张牌在经过mm次操作后的顺序。
输入
第一行包括两个正整数 nn和mm。1 \leq n,m \leq 1001≤n,m≤100
第二行包含nn个数,表示nn张牌起始的排列顺序。
接下来有mm行,每一行有一个正整数s_is
i
,表示第ii次操作移动的牌的点数。
输出
输出这nn张牌在经过mm次操作后的顺序。
样例
输入复制
5 2
1 2 3 4 5
3
4
输出复制
4 3 1 2 5
//简单题但没提交上去不知道为什么。。。
#include<iostream>
using namespace std;
int a1[101],a2[101];
int main()
{
int x,y;
cin>>x>>y;
for(int i=0;i<x;i++)
{
cin>>a1[i];
}
for(int i=0;i<y;i++)
{
cin>>a2[i];
}
for(int i=0;i<y;i++)
{
for(int ii=0;ii<x;ii++)
{
if(a2[i]==a1[ii])
{
int r=a1[0],d;
a1[0]=a1[ii];
for(int iii=1;iii<=ii;iii++)
{
d=a1[iii];
a1[iii]=r;
r=d;
}
//a1[0]=a2[i];
break;
}
}
}
for(int i=0;i<x;i++)
{
cout<<a1[i]<<" ";
}
cout<<endl;
return 0;
}
不能理解原因。。。
O. zbw的情书2.0
描述
zbw学长喜欢ybw学长很久了,但是他不好意思直接说,于是写了一封情书,ybw学长收到情书后十分纠结,不知道要不要接受这份爱,于是他请聪明的你来判断一下情书到底是不是真情实意。
若情书中出现“I love you”的次数大于“I love him”的次数,则是真情实意。
输入
一段情书,情书长度 0\leq s \leq 1000000≤s≤100000
输出
若情书是真情实意,则输出“wo yao jia gei ta”
若情书是虚情假意,则输出“zha nan gun”
样例
输入复制
I love youI love you I love you marry me please,I love him.
输出复制
wo yao jia gei ta
//这里直接用字符串然后一个一个查找就好了
nclude<iostream>
#include<string>
#include<cstring>
#include<cstdio>
using namespace std;
int sum1=0,sum2=0;
int main()
{
char c1,c2;
char str[100001];
string str1=" love ";
string str2="you";
string str3="him";
cin.getline(str,100001);
for(int i=0;i<strlen(str);i++)
{
string str4;
if(str[i]=='I')
{
i++;
while(str[i]!='I')
{
str4+=str[i];
if(str4.size()==9)
break;
i++;
}
if(str4.size()!=9)
{
i--;
}
else
{
if(str4==str1+str2)
sum1++;
if(str4==str1+str3)
sum2++;
//cout<<sum1<<sum2<<endl;
}
}
}
if(sum1>sum2)
cout<<"wo yao jia gei ta"<<endl;
else cout<<"zha nan gun"<<endl;
return 0;
}
这一周就这样过去了
写了大概有十个小时水平挺低的。。。
周六的省赛学长参加只做对了一个签到题
希望我中途不会放弃