9 条题解

  • 3
    @ 2023-5-7 18:04:13
    #include <iostream>
    #include <set>
    #include <map>
    using namespace std;
    map <pair<int,int>,bool> existed;
    int height[10001];
    int main()
    {
    	int n,r,i,h;
    	cin>>n>>i>>h>>r;
    	height[1]=h;
    	for(int i=0;i<r;i++)
    	{
    		int x,y;
    		cin>>x>>y;
    		if(x>y)
    		{
    			swap(x,y);
    			// cout<<x<<" "<<y<<endl;
    		}
    		if(!existed[make_pair(x,y)])
    		{
    			existed[make_pair(x,y)] = 1;
    			height[x+1] --;
    			height[y]++;
    		}
    
    	}
    	for(int i=1;i<=n;i++)
    	{
    		height[i] += height[i-1];
    		cout<<height[i]<<endl;
    	}
    	return 0;
    }
    
    • 3
      @ 2023-5-5 19:23:31

      题意:让牛的身高尽可能大

      思路:首先我们肯定是由最高的那头牛来推出其他牛,身高为了保证尽可能高,所以我们让身高每次减一,每对关系其实说明一个事情,那对关系中间的牛都要比这两个牛矮

      思路一:

      我们可以把所有牛初始身高设为h,然后每给一对关系我们都区间-1,最后得出答案

      思路二

      我们差分算区间-1,然后最后把差值加上h就是答案

      #include<bits/stdc++.h>
      #define maxn 100005
      #define mod 1000000007
      using namespace std;
      typedef long long ll; 
      struct sss
      {
          int x,y; 
      }a[maxn];
      ll n,p,h,m,num,d[maxn]; 
      map<ll,ll> mp[10005];
      ll c[maxn];
      int main()
      {
          cin>>n>>p>>h>>m;
          ll x,y;
          for(int i=0;i<m;i++){
              cin>>x>>y;
              if(mp[x][y]||mp[y][x]) continue;
              if(x>y){
                  int t=x;
                  x=y;
                  y=t;
              }
              a[num].x=x;
              a[num++].y=y;
              mp[x][y]=1;
              mp[y][x]=1;
          }
          for(int i=0;i<num;i++){
              d[a[i].x+1]--;
              d[a[i].y]++;
          }
          for(int i=1;i<=n;i++){
              c[i]=c[i-1]+d[i]; 
              cout<<c[i]+h<<"\n";
          }
      }
      
      
      • 1
        @ 2023-12-24 18:21:23

        #include using namespace std; const int N=1e5+10; int n,p,h,m,a[N],x,y; int main(){ cin>>n>>p>>h>>m; for(int i=1;i<=n;i++)a[i]=h; while(m--){ cin>>x>>y; if(x>y)swap(x,y); if(x+1==y)continue; int k=min(a[x],a[y]); bool flag=false; for(int i=x+1;i<=y-1;i++) if(a[i]>=k){ flag=true; break; } if(flag) for(int i=x+1;i<=y-1;i++)a[i]--; } for(int i=1;i<=n;i++)cout<<a[i]<<"\n"; return 0; }

        • 1
          @ 2023-12-24 18:20:46
          #include<iostream>
          using namespace std;
          const int N=1e5+10;
          int n,p,h,m,a[N],x,y;
          int main(){
          cin>>n>>p>>h>>m;
          for(int i=1;i<=n;i++)a[i]=h;
          while(m--){
          cin>>x>>y;
          if(x>y)swap(x,y);
          if(x+1==y)continue;
          int k=min(a[x],a[y]);
          bool flag=false;
          for(int i=x+1;i<=y-1;i++)
          if(a[i]>=k){
          flag=true;
          break;
          }
          if(flag)
          for(int i=x+1;i<=y-1;i++)a[i]--;
          }
          for(int i=1;i<=n;i++)cout<<a[i]<<"\n";
          return 0;
          }
                          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          • 1
            @ 2023-12-24 18:20:01
            int n,p,h,m,a[N],x,y;
            int main(){cin>>n>>p>>h>>m;
            for(int i=1;i<=n;i++)a[i]=h;
            while(m--){
            cin>>x>>y;
            if(x>y)swap(x,y);
            if(x+1==y)continue;
            int k=min(a[x],a[y]);
            bool flag=false;
            for(int i=x+1;i<=y-1;i++)
            return 0;
            }                 ```
            
            • 1
              @ 2023-12-24 18:16:41

              #include using namespace std; const int N=1e5+10; int n,p,h,m,a[N],x,y; int main(){ cin>>n>>p>>h>>m; for(int i=1;i<=n;i++)a[i]=h; while(m--){ cin>>x>>y; if(x>y)swap(x,y); if(x+1==y)continue; int k=min(a[x],a[y]); bool flag=false; for(int i=x+1;i<=y-1;i++) if(a[i]>=k){ flag=true; break; } if(flag) for(int i=x+1;i<=y-1;i++)a[i]--; for(int i=1;i<=n;i++)cout<<a[i]<<"\n"; return 0; }

              • 1
                @ 2023-12-24 9:49:45

                #include #include <math.h> #include #include <stdio.h> #include #include #include #include <string.h> #include using namespace std; #define LL long long const int N = 1e4 + 10; const int INF = 0x3f3f3f3f; int n,p,h,m,x,y; bool v[N][N]; int cf[N],a[N]; int main() { cin>>n>>p>>h>>m; while(m--) { cin>>x>>y; if(v[x][y]) continue; if(x>y) swap(x,y); cf[x+1]--; cf[y]++; v[x][y]=1; } for(int i=1;i<=n;i++) { a[i]=a[i-1]+cf[i]; cout<<a[i]+h<<endl; }

                return 0;
                

                }

                • 1
                  @ 2023-12-20 20:13:18
                  #include<bits/stdc++.h>
                  using namespace std;
                  const int N=1e4+10;
                  const int INF=0x3f3f3f3f;
                  bool v[N][N];
                  int n,p,h,m,a[N],cf[N],x,y;
                  int main(){
                  	cin>>n>>p>>h>>m;
                  	while(m--){
                  		cin>>x>>y;
                  		if(x>y)
                  			swap(x,y);
                  		if(v[x][y]){
                  			continue;
                  			
                  		}
                  		cf[x+1]--;
                  		cf[y]++;
                  		
                  		v[x][y]=1;
                  		
                  	}
                  	for(int i=1;i<=n;i++){
                  		a[i]=a[i-1]+cf[i];
                  		cout<<a[i]+h<<endl;
                  	}
                  	return 0;
                  }
                  
                  • 1
                    @ 2023-12-20 19:46:17

                    #include<bits/stdc++.h> using namespace std; const int N=1e4+10; const int INF=0x3f3f3f3f; bool v[N][N]; int n,p,h,m,a[N],cf[N],x,y; int main(){ cin>>n>>p>>h>>m; while(m--){ cin>>x>>y; if(x>y) swap(x,y); if(v[x][y]){ continue;

                    }
                    	cf[x+1]--;
                    	cf[y]++;
                    	
                    	v[x][y]=1;
                    	
                    }
                    for(int i=1;i<=n;i++){
                    	a[i]=a[i-1]+cf[i];
                    	cout<<a[i]+h<<endl;
                    }
                    return 0;
                    

                    }

                    • 1

                    信息

                    ID
                    13
                    时间
                    1000ms
                    内存
                    128MiB
                    难度
                    4
                    标签
                    递交数
                    452
                    已通过
                    192
                    上传者