首页 > 其他分享 >20241002每日一题洛谷P1563

20241002每日一题洛谷P1563

时间:2024-10-02 22:00:15浏览次数:9  
标签:左数 洛谷 20241002 point int P1563 num lr scanf

粗看题目
我靠,什么方向还变来变去的(哭泣
核心思想:圈内右数,圈外左数为整体逆时针数;圈外右数,圈内左数为整体顺时针数
运用结构体就有了第一版源码:

/////

define _CRT_SECURE_NO_WARNINGS 1

include <stdio.h>

include

struct people
{
int face;
char name[12];
};
int main() {
int m, n;
scanf("%d %d", &n, &m);
people a[10010];
for (int i = 0; i < n; i++) {
scanf("%d %s", &a[i].face, &a[i].name);
}
int lr, num;
int point = 0;//使用point定位结构体
for (int i = 0; i < m; i++) {
scanf("%d %d", &lr, &num);
if ((a[point].face + lr) % 2 == 1) {//定义圈内右数,圈外左数为整体逆时针数
point += num;
if (point > n) {
point -= n;
}
}
else//圈外右数,圈内左数为整体顺时针数
{
point -= num;
if (point < 0) {
point += n;
}
}
}
printf("%s", a[point].name);
return 0;
}

/////

第一次提交:坏消息,5个RE,2个WA
于是乎回顾题目,发觉n和m为1e5,原来是数组开小了
把数组开在全局,以及将
if (point 0)
单次判断改写为
while (point 0)一直判断

/////

第二次提交:坏消息,2个WA任然错误
经过老登指导,发现 转圈的时候是以1为起点
if (point > n) {
point -= n;
}
改写为
if (point >= n)

/////

第三次提交:成功解决问题AC了!!!
AC代码:

/////

define _CRT_SECURE_NO_WARNINGS 1

include <stdio.h>

include

struct people
{
int face;
char name[12];
};
people a[100010];
int main() {
int m, n;
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
scanf("%d %s", &a[i].face, &a[i].name);
}
int lr, num;
int point = 0;//指针
for (int i = 0; i < m; i++) {
scanf("%d %d", &lr, &num);
if ((a[point].face + lr) % 2 == 1) {//定义圈内右数,圈外左数为整体逆时针数
point += num;
while(point >= n) {
point -= n;
}
}
else//圈外右数,圈内左数为整体顺时针数
{
point -= num;
while (point < 0) {
point += n;
}
}
}
printf("%s", a[point].name);
return 0;
}

/////

标签:左数,洛谷,20241002,point,int,P1563,num,lr,scanf
From: https://www.cnblogs.com/dianman/p/18445159

相关文章

  • 20241002测试
    move题面:\(T\)组数据,每组数据有\(n\)个数轴上的点\(a_1,a_2,\dots,a_n\)。从原点开始,每次选择一个点未被选择过的点,如果当前在这个点上,那么分数加\(1\),否则向这个点移动\(1\)格。问最高分数。题解:容易发现,要么先往左再往右,要么先往右再往左。先考虑第一种情况,枚举左端......
  • 20241002
    bwtree我们可以设\(dp_{i,0/1}\)表示当前考虑至哪个点,这个节点的子树内选了几个叶子节点#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5,INF=1e9;intn,a[N],dp[N][2];vector<int>g[N];voiddfs(intu,intf){dp[u][0]=(a[u]=......
  • 【LGR-197-Div.2】洛谷 10 月月赛 I &「SFMOI」Round I(A,B,C)
    A.StrangeCakeGame对于小W,往下走最赚,对于小M往右走最赚,于是路线形成了个折线,直接对应竖坐标位置去看看横坐标符不符合要求即可#include<iostream>#include<algorithm>#include<string>#include<string.h>#include<queue>#include<deque>#include<math.h>#include<m......
  • LoongArch@微处理器体系结构专利技术研究方法@20241002
    微处理器体系结构专利技术研究方法第一辑:X86指令集总述 微处理器体系结构专利技术研究方法第二辑:x86多媒体指令集 微处理器体系结构专利技术研究方法第三辑:X86指令实现专利技术 ......
  • 洛谷P1518两只塔姆沃斯牛
    #include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;usingu64=unsignedlonglong;usingu32=unsigned;charm[12][12];intfarmer[3];intcow[3];boolzt[200000];intans;voidmove(intx,inty,intdir,inttype){if(dir==......
  • 【洛谷】AT_abc079_d [ABC079D] Wall 的题解
    【洛谷】AT_abc079_d[ABC079D]Wall的题解洛谷传送门AT传送门题解不懂就问,为什么ABC很喜欢出板子题。经典的Floydqaq题目给出了一个二维数组和000~......
  • (洛谷)题目题号P1047 [NOIP2005 普及组] 校门外的树
    Hello大家好我是小亦,这是今天发布的第二篇题解,唉我就在想怎么样才能把粉丝提上来呢隔壁朋友都比我高了好多唉苦恼qwq,好吧接受现实,好那么好今天我们来讲的是来自于NOIP2005年普及组的真题名叫:校门外的树,其实这道题跟其他几道题很相似,应该是同一家的吧qwq,好了不废话了思路给大家q......
  • 数组中洛谷p1427小鱼的数字游戏
    先来看看题目吧:然后先来复习一下数组:你需要了解:数组的定义,数组的创建,数组的初始化,数组的使用(尤其是数组下标是从零开始的!)然后就来看思路吧:......
  • 洛谷题单指南-分治与倍增-P6648 [CCC2019] Triangle: The Data Structure
    原题链接:https://www.luogu.com.cn/problem/P6648题意解读:在一个n行的数字三角形中,求所有边长为k的正三角形最大值之和。解题思路:1、枚举法枚举每一个边长为k的三角形,在其中求max,然后累加,n最多3000,时间复杂度是n^4,显然超时。2、倍增和ST思想此题非常类似于RMQ问题,也就是求区......
  • 字符串中洛谷B2124判断字符串是否为回文
     #include<stdio.h>intmain(){  charstr[80];  inti,count=0;  intt=0;   gets(str);//输入   for(i=0;str[i]!='\0';i++)//遇到字符串结束标志'\0'时停止计数    count++;//统计共有多少个字符   for(i=0;i<count/2;i++......