专栏文章
【LGR-251-Div.4】洛谷入门赛 #40
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minkrddw
- 此快照首次捕获于
- 2025/12/02 04:01 3 个月前
- 此快照最后确认于
- 2025/12/02 04:01 3 个月前
前情提要,因为被-S的二分吓哭了于是找点题练练手感
T1 小学奥数 答案为
CPP#include<cstdio>
using namespace std;
namespace Main{
int n,m;
inline void main(){
scanf("%d%d",&n,&m);
printf("%d",(n-1)*(m-1)-1);
return ;
}
}
signed main(){
Main::main();
return 0;
}
T2 sort一遍懒得写if,注意如果没有复合的就输出排序后第二个元素在原来数组中的下标
CPP#include<cstdio>
#include<algorithm>
using namespace std;
namespace Main{
int k,res=-1;
int s[3],w[3];
inline void main(){
scanf("%d%d%d%d",&s[0],&s[1],&s[2],&k);
w[s[0]]=0,w[s[1]]=1,w[s[2]]=2;
for(int i=0;i<=2;i++){
res=s[i]==k?i:res;
}
sort(s,s+3);
for(int i=1;i<=2;i++){
if(s[i]==s[i-1]){
printf("Report");
return ;
}
}
if(!(~res)){
res=w[s[1]];
}
printf("%c",(char)('A'+res));
return ;
}
}
signed main(){
Main::main();
return 0;
}
T3 按位拆分数字,判断删除末尾的0后有几位数字即可
CPP#include<cstdio>
#include<algorithm>
using namespace std;
namespace Main{
int n;
inline void main(){
scanf("%d",&n);
if(n>=1&&n<=10){
printf("Yes");
}
else{
int cnt=0;
while(n){
cnt+=(bool)(n%10);
n/=10;
}
printf(cnt==1?"Yes":"No");
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
T4 set统计,s[i]表示i出现过的所有下表,s[i].size代表i的出现次数,无解Error,有解答案即为s[m][k-1]
CPP#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
namespace Main{
const int N=5050;
int n,k,m;
vector<int> s[N];
inline void main(){
scanf("%d",&n);
for(int i=1,x;i<=n;i++){
scanf("%d",&x);
s[x].push_back(i);
}
scanf("%d%d",&k,&m);
if(s[m].size()<k){
printf("Error");
return ;
}
printf("%d",s[m][k-1]);
return ;
}
}
signed main(){
Main::main();
return 0;
}
T5 不使用数组的情况下对于任意i判断奇偶性,注意i要从2开始并且要存储上一个输入的数
CPP#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
namespace Main{
int T,n;
inline void main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n);
int lst;
bool flag=0;
scanf("%d",&lst);
for(int i=2,x;i<=n;i++){
scanf("%d",&x);
if(i&1){
flag=max(flag,lst==x);
}
else{
flag=max(flag,lst!=x);
}
lst=x;
}
puts(flag?"No":"Yes");
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
T6 模拟,注意取模的时候要写成(x+p)%p 防止出现负数
CPP#include<set>
#include<cstdio>
#include<algorithm>
using namespace std;
namespace Main{
const int N=3010;
int n,q;
int s[N];
set<int> st;
inline void main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++){
scanf("%d",&s[i]);
}
while(q--){
int p;
scanf("%d",&p);
for(int i=1;i<=n;i++){
st.insert((s[i]+p)%p);
}
printf("%d\n",st.size());
st.clear();
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
T6 先找出那个整数,接着从右向左模拟,遇到'[',']'均跳过,a数组就cnt=a[cnt],b数组就cnt=b[cnt],注意下标处理即可
CPP#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
namespace Main{
const int N=1e5+7;
int n,cnt;
char s[N];
int a[N],b[N];
inline void main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%d",&b[i]);
}
scanf("%s",s+1);
int len=strlen(s+1);
for(int i=1;i<=len;i++){
if(s[i]>='0'&&s[i]<='9'){
while(s[i]>='0'&&s[i]<='9'){
cnt=(cnt<<1)+(cnt<<3)+(s[i]^48);
++i;
}
break;
}
}
for(int i=len;i;--i){
while(s[i]==']'||s[i]=='['){
--i;
}
if(s[i]=='a'){
cnt=a[cnt];
}
else if(s[i]=='b'){
cnt=b[cnt];
}
}
printf("%d",cnt);
return ;
}
}
signed main(){
Main::main();
return 0;
}
T7 从上往下模拟,用vector存储箱子的字符,遇到障碍就从障碍上方向上枚举,放置,注意最后如果还有箱子没放要从最底下往上放
使用vector而不是stack的原因是vector有clear函数stack没有,下标处理麻烦点但是写着舒服
CPP#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
namespace Main{
const int N=1e5+7;
int n,m;
char s[20][N];
vector<char> q;
inline void main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%s",s[i]+1);
}
for(int i=1;i<=n;i++){
puts(s[i]+1);
}
for(int j=1;j<=m;j++){
for(int i=1;i<=n;i++){
if(s[i][j]>='A'&&s[i][j]<='Z'){
q.push_back(s[i][j]);
s[i][j]='.';
}
else if(s[i][j]=='-'){
for(int k=i-1;k<=i-q.size();k--){
s[k][j]=q[q.size()+k-i];
}
q.clear();
}
}
if(!q.empty()){
for(int k=n;k<=n-q.size()+1;k--){
s[k][j]=q[q.size()+k-n-1];
}
q.clear();
}
}
for(int i=1;i<=n;i++){
puts(s[i]+1);
}
return ;
}
}
signed main(){
Main::main();
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...