1 条题解

  • 0
    @ 2025-8-24 21:39:49

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Mono_pigsicklie
    **

    搬运于2025-08-24 21:39:49,当前版本为作者最后更新于2019-03-24 09:08:57,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路:

    纯模拟(不懂模拟的可以理解为就是你在玩这个游戏,你就是游戏人物,你在执行规则就可以了)

    #include<bits/stdc++.h>
    using namespace std;
    string s;
    int n,a,cishi=-1,tot=0;
    int main() {
    	getline(cin,s);
    	scanf("%d",&n);
    	int length=s.length()-1;
    	for(int i=1; i<=n; i++) {
    		scanf("%d",&a);
    		cishi+=a;
    		if(cishi>=length) cishi=length-1;
    		if(s[cishi]=='>'&&s[cishi+1]=='>'&&s[cishi+2]=='>')
    			while(s[cishi]=='>')cishi++;
    		else if(s[cishi]=='*'&&s[cishi+1]=='*'&&s[cishi+2]=='*') {
    			while(s[cishi+tot]=='*')tot++;
    			cishi-=tot;
    		}
    		if(cishi<0)cishi=0;
    		if(cishi>=length)cishi=length-1;
    	}
    	cout<<cishi+1<<' '<<length-1-cishi;
    	return 0;
    }
    

    总结一下:有一些比较坑人的点(对于我这样脑子不大灵光的人)

    1.刚开始的时候他还没有在棋盘上,一定要注意!!(卡了我一上午)不注意的话,洛谷上只能AC一半数据点。

    2.样例我没过!!!(我的输出是20 4)代码玄学还是样例有误我不晓得,

    3.while(s[cishi+tot]=='')tot++;在判断倒退的时候一定是加上‘’这个符号的格数,不然还是卡一半数据点。

    4.读好题目读好题目读好题目(重要的事情来三遍)

    • 1

    信息

    ID
    1671
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者