5 条题解

  • 3
    @ 2023-4-15 15:43:32

    输入时因为只用计算差,可以只用两个变量迭代,计算有不有趣也可以用桶排搞定

    int n,x,y;
    bool a[3001];
    int main(){
    	while(cin>>n){
    		memset(a,0,sizeof(a));
            cin>>x;
    		for(int i=2;i<=n;i++){
                cin>>y;
    			int cha=abs(y-x);
                if(cha<n)a[cha]=1;
                x=y;
    		}
    		int cnt=0;
    		for(int i=1;i<=n-1;i++)if(a[i])cnt++;
    		if(cnt==n-1)cout<<"Jolly\n";
    		else cout<<"Not jolly\n";
    	}
    	return 0;
    }
    
  • 2
    @ 2024-10-11 18:55:54
    /*****************************************
    备注:
    ******************************************/
    #include <queue>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const int N = 1e5 + 10;
    const int INF = 0x3f3f3f3f;
    int a[N];
    int main()
    {
    	int n ;
    	while(cin >> n)
    	{
    		memset(a,0,sizeof(a));//string.h  初始化数组
    		int pre;
    		cin >> pre;
    		int now;
    		for(int i = 1 ; i < n ; i++)
    		{
    			cin >> now;
    			int s = now - pre;
    			if(s < 0)
    				s = s * -1;
    			a[s] = 1;
    			pre = now;
    		}
    		int flag = 1;
    		for(int i = 1 ; i < n ; i++)
    		{
    			if(a[i] == 0)
    			{
    				flag=  0;
    				break;
    			}
    		}
    		if(flag == 1)
    			cout << "Jolly\n";
    		else 
    			cout << "Not jolly\n";
    	}
    	return 0;
    }
    
    • 1
      @ 2025-6-22 18:27:26
      #include<bits/stdc++.h>
      using namespace std;
      const int N=3e3+10;
      int n,x,a[N];
      bool v[N];
      int main(){
      	while(cin>>n){
      		int ans=0;
      		cin>>a[1];
      		for(int i=2;i<=n;i++){
      			cin>>a[i];
      			if(abs(a[i]-a[i-1])<n&&v[abs(a[i]-a[i-1])]==0){
      				v[abs(a[i]-a[i-1])]=1;
      				ans++;
      			}
      		}
      		if(ans==n-1){
      			cout<<"Jolly"<<endl;
      		}else{
      			cout<<"Not jolly"<<endl;
      		}
      		memset(v,0,sizeof(v));
      	}
      	return 0;
      }
      
      
      
      • 0
        @ 2025-6-22 20:08:43
        #include<bits/stdc++.h>
        using namespace std;
        const int N =3e3+10;
        int n,a[N];
        bool v[N];
        int main(){
        	while(cin>>n){
        		memset(v,0,sizeof(v));
        		int sum=0;//计算有多少个标记的数
                cin>>a[1];
        		for(int i=2;i<=n;i++)
        		{
                    cin>>a[i];
                    if(abs(a[i]-a[i-1])<n&&v[abs(a[i]-a[i-1])]==0)
        			{
        				v[abs(a[i]-a[i-1])]=1;//标记
        				sum++;
        			}
        		}
        		if(sum==n-1)
        			cout<<"Jolly"<<endl;
        		else 
        			cout<<"Not jolly"<<endl;
        	}
        	return 0;
        }
        
        
        • 0
          @ 2025-6-22 20:03:24
          #include <bits/stdc++.h>
          using namespace std;
          const int N = 3e3 + 10;
          int n,a[N];
          bool v[N];
          int main(){
          	while(cin >> n){
          		memset(v,0,sizeof(v));
          		int sum = 0;
          		cin >> a[1];
          		for(int i = 2;i <= n;i++){
          			cin >> a[i];
          			if(abs(a[i] - a[i - 1]) < n && v[abs(a[i] - a[i - 1])] == 0){
          				v[abs(a[i] - a[i - 1])] = 1;
          				sum++;
          			}
          		}
          		if(sum == n - 1){
          			cout << "Jolly" << endl;
          		}else{
          			cout << "Not jolly" << endl;
          		}
          	}
          	return 0;
          } 
          
          • 1

          信息

          ID
          1024
          时间
          1000ms
          内存
          128MiB
          难度
          8
          标签
          递交数
          786
          已通过
          119
          上传者