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

20241002每日一题洛谷P1563

时间:2024-10-06 10:23:08浏览次数:8  
标签:左数 洛谷 20241002 point int P1563 num lr scanf

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

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;
	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代码:

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/18448885

相关文章

  • [题解][洛谷P3584] LAS
    题目描述有n个蛋糕和n个人,每个蛋糕的热量是Ci。第i个人可以选择吃第i或第i+1个蛋糕,第n个人可以选择吃第n或第1个蛋糕。若一个蛋糕被两个人吃,那么每个人得到的热量是Ci/2.若一个人改变自己的选择,得到的热量增加,那么他会不满意。试输出让所有人满意的解,输出每个人吃蛋糕的序号......
  • [题解][洛谷P1578] 奶牛浴场
    题目描述在长宽为L,W的二维平面上有n个障碍点,试找到一个不覆盖任何障碍点(但点可以在边缘线上的)面积最大的矩形(长宽均与坐标轴平行)。输出面积。题意分析n的范围在5e3,考虑O(n2)的做法。易得面积最大的矩形四条边要么有障碍点,要么覆盖的边界。否则四条边可以继续扩展,面积会变得更......
  • [题解][洛谷P1633] 二进制
    题目描述有三个整数A,B,C,构造三个整数X,Y,Z满足:1.A,B,C在二进制下1的数量分别与X,Y,Z相等;2.X,Y,Z在二进制下的长度不超过A,B,C的最大长度;3.X+Y=Z。输出Z的最小值,若不存在Z,输出-1。题意分析首先考虑X,Y在什么情况下会使1的数量发生改变。设x,y,z分别表示X,Y,Z中1的数量,则......
  • 洛谷P10336 [UESTCPC 2024] 2-聚类算法
    涉及知识点:博弈、贪心题意Alice和Bob在玩选点游戏,所有的点在一个\(k\)维空间中,他们轮流选走一个点放入自己的集合中,Alice先手。定义集合\(S\)的权值\(val(S)\)为集合中点两两之间的\(k\)维曼哈顿距离之和。Alice的得分为\(val(S_A)-val(S_B)\),Bob的得分为\(val(......
  • 题解:洛谷P2339 [USACO04OPEN] Turning in Homework G
    题目链接:洛谷P2339[USACO04OPEN]TurninginHomeworkG首先我们考虑如何处理到达给定时间后才能交作业这一限制。其实在生活中,我们一般只会考虑什么时候交作业截止(除了某些卷王),这样我们只用考虑如何在最大结束时间之前交作业,而不是在所有作业都没开始交之前考虑如何转悠(前者明......
  • 20241002每日一题洛谷P1563
    粗看题目我靠,什么方向还变来变去的(哭泣核心思想:圈内右数,圈外左数为整体逆时针数;圈外右数,圈内左数为整体顺时针数运用结构体就有了第一版源码://///define_CRT_SECURE_NO_WARNINGS1include<stdio.h>includestructpeople{intface;charname[12];};intmain(){in......
  • 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指令实现专利技术 ......