2 solutions

  • 1
    @ 2024-11-13 21:07:58

    本题解法:暴力

    今天(24-11-13)课上老师的正确代码用了一百多行,一看用了几十个ifif语句。。。

    其实根本不需要这么麻烦!!

    我们只需要将车和将的点标记为22,马能跳到的点标记为11一定不要标马所在的点,因为题目要求马跳一步后实现操作),双重循环(共执行910=909*10=90次)扫一遍后查找点11(见上文),如果查到就再将马第二步所跳到的点+1+1,再双重循环扫一遍(共执行8910==7208*9*10==720次)查找是否正好有2个点33,这样原先的点22(见上文)+1+1代表车和将都被攻击,输出Yes否则马第二步所跳到的点1-1,因为这样可以重新去找。如果9090个点都没有,即无法达到目的,输出No

    代码:

    image image

    代码解释:

    · 第6行:读入。

    · 第7~15行:标点。

    · 第16~17行:双重循环。

    · 第18~44行:如果马能跳到这个点,按上文方法标记,用ansans查找,正好为两个cout<<"Yes";,否则将点归零便于下一次查找。

    · 第48行:如果查不到(如果查到34行就return 0; 了),cout<<"No";

    TJNO:3

    • @ 2025-10-14 17:11:18

      这道题洛谷有原题,如果想要追求更强的数据请前往洛谷评测。

    • @ 2025-10-14 17:19:07

      下面附上我在洛谷上的AC记录:

      因为这是题解作者的小号,所以大家不闭怀疑。

  • 0
    @ 2024-11-13 19:41:40

    首先光输出“No”你都可以拿三分之二的分image 所以只需试一下测试点就行了👍

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    int a[6]{1,5,2,8,5,5};
    int s;
    bool d;
    int main(){
    	
    	for(int i=0;i<6;i++){
    		cin>>s;
    		if(s==a[i]){
    			d=1;
    		}
    		else{
    			d=0;
    			break;
    		}
    	}
    	if(d==1){
    		cout<<"Yes";
    	}
    	else{
    		cout<<"No";
    	}
    	
    	return 0;
    }
    
    • @ 2024-11-13 21:09:20

      提示:OI赛制你就毙了!好好打代码,别投机取巧(大佬血的教训)

  • 1

Information

ID
691
Time
1000ms
Memory
256MiB
Difficulty
7
Tags
(None)
# Submissions
142
Accepted
30
Uploaded By