33 条题解

  • 0
    @ 2022-8-25 11:14:12

    本来这道题挺简单的,但是我数组开得太小了哈哈(up AC过)。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int l, m, a[10000], ans = 0, x, y;
        cin >> l >> m;
        for (int i = 0; i <= l; i++)
        {
            a[i] = 1;
        }
        for (int i = 0; i < m; i++)
        {
            cin >> x >> y;
            for (int j = x; j <= y; j++)
            {
                a[j] = 0;
            }
        }
        for (int i = 0; i <= l; i++)
        {
            if (a[i] == 1)
            {
                ans++;
            }
        }
        cout << ans;
        return 0;
    }
    
    • -1
      @ 2023-8-11 10:12:21
      #include <bits/stdc++.h>
      using namespace std;
      int main()
      {
          int a[10005], n, m, sum = 0;
          scanf("%d%d", &n, &m);
          for (int i = 0; i <= n; i++)
              a[i] = 1;
          for (int i = 0; i <= m; i++)
          {
              int l, r;
              scanf("%d%d", &l, &r);
              for (int j = l; j <= r; j++)
                  a[j] = 0;
          }
          for (int i = 0; i <= n; i++)
              if (a[i] == 1)
                  sum++;
          printf("%d\n", sum);
          return 0;
      }
      
      • -1
        @ 2023-8-7 11:48:12
        #include <bits/stdc++.h>
        using namespace std;
        int main()
        {
            int L,M;
            int cnt=0;
            int vis[10000+10];
            memset(vis,0,sizeof(vis));
            cin>>L>>M;
            for(int i=0;i<=L;i++){
                vis[i]=0;
            }
            for(int i=1;i<=M;i++){
                int head,tail;
                cin>>head>>tail;
                for(int j=head;j<=tail;j++){
                    if(vis[j]==0){
                        vis[j]=1;
                    }
                }
            }
            for(int i=0;i<=L;i++){
                if(vis[i]==0){
                    cnt++;
                }
            }
            cout<<cnt<<endl;
            return 0;
        }
        #
        
        • -1
          @ 2023-7-24 20:25:09

          模拟的运用

          这道题本身不是很难,但在这套题单中,也算是数一数二了,全靠同行衬托了属于是。


          好了,进入正题。 这道题我运用的是模拟,思路如下:

          1. 定义一个数组,大l+1,模拟道路上的树,全部初始化为1,表示有树。
          2. 输入M行中每行的数,把对应的数都设为0,模拟树移走的情况。
          3. 最后定义一个变量用以统计,遍历数组,如果数为0那么变量加1,最后统计出剩余要种的树。

          AC代码(附注释解析)

              int l,m;
              cin>>l>>m;
              int a[l+1],b1,b2;
              for (int i=0;i<=l;i++)
              {
                  a[i]=1;
              }//把数组a全部初始化为1,表示全都有树。
              for (int i=1;i<=m;i++)
              {
                  cin>>b1>>b2;//输入头和尾。
                  for (int j=b1;j<=b2;j++)
                  {
                      a[j]=0;
                  }//把编号b1到b2得数都设为0,表示没有树。
              }//用这种方法就可以防止一个地方重复减两次。
              int sum=0;//定义一个变量,用以统计还有树的地方。
              for (int i=0;i<=l;i++)//遍历数组
              {
                  if (a[i]==1)
                  {
                      sum++;
                  }//如果有树(数组为1表示有树),那么sum+1。
              }
              cout<<sum;
          
          • -1
            @ 2023-7-22 14:25:44
            #include <cstdio>
            using namespace std;
            int main(){
                int l,m,a,b,num=0,f[10005];
                scanf("%d%d",&l,&m);
                for(int i=0;i<=l;i++)f[i]=1;
                for(int i=1;i<=m;i++){
                    scanf("%d%d",&a,&b);
                    for(int j=a;j<=b;j++)f[j]=0;
                }
                for(int i=0;i<=l;i++)if(f[i]==1)num++;
                printf("%d\n",num);
                return 0;
            }
            
            • -1
            • -2
              @ 2024-5-31 18:27:02

              #include <bits/stdc++.h> using namespace std; int main() { bool a[10005] int l, m, start, end, s = 0; cin>>l>>m; for(int i = 0; i <= l; i++) a[i] = true; for(int i = 0; i < m; ++i) { cin >> start >> end; for(int j = start; j <= end; j++) a[j] = false; } for(int i = 0; i <= l; ++i) { if (a[i]) s++; } cout<<s; return 0; }

              • -2
                @ 2024-1-6 22:22:59

                #include <iostream> using namespace std; int c[10000]; int main() { int l,m,num=0,a,b; cin>>l>>m; for (int i=0;i<=l;i++) { c[i]=1; } for (int i=1;i<=m;i++) { cin>>a>>b; for (int j=a;j<=b;j++) { c[j]=0; } } for (int i=0;i<=l;i++) { num+=c[i]; } cout<<num; return 0; }

                • -2
                  @ 2024-1-6 22:22:22

                  #include <iostream> using namespace std; int c[10000]; int main() { int l,m,num=0,a,b; cin>>l>>m; for (int i=0;i<=l;i++) { c[i]=1; } for (int i=1;i<=m;i++) { cin>>a>>b; for (int j=a;j<=b;j++) { c[j]=0; } } for (int i=0;i<=l;i++) { num+=c[i]; } cout<<num; return 0; }

                  • -2
                    @ 2023-10-7 20:26:38

                    #include <iostream> using namespace std; int main() { int l, m, a, b, a[10005], sum = 0; cin >> l >> m; for (int i = 0; i <= l; i++) { a[i] = 1; } for (int i = 1; i <= m; i++) { cin >> a >> b; for (int j = a; j <= b; i++) { a[j] = 0; } } for (int i = 0; i <= l; i++) { if (a[i]) { sum++; } } cout << sum; return 0; }

                    • -2
                      @ 2023-9-23 22:54:30
                      1. 
                        

                      #include <bits/stdc++.h> using namespace std; int main() { int l,a[100000],m,x,y,num = 0; cin>>l>>m; for (int i = 0; i <= l; i++) { a[i] = 1; } for (int i = 1; i <= m; i++) { cin>>x>>y; for (int j = x; j <= y; j++) { a[j] = 0; } } for (int i = 0; i <= l; i++) { if(a[i] == 1) { num++; } } cout<<num; }

                      
                      
                      • -3
                        @ 2022-9-16 23:12:19

                        实际上并不用想其他UP那么麻烦,不必多炫耀知识多想

                        想想:

                        陶陶不用站椅子就可以摘到,那他站上椅子那也不用愁了?


                        是的,我们可以直接算陶陶站上椅子可以摘几颗不就KO了?


                        所以说别往难的地方去想嘛


                        那基本的思路是这鸭子的:
                        1. 输入10个在100到200之间的正整数
                        2. 输入陶陶的身高
                        3. 更新陶陶的身高(加上椅子的高度30厘米)
                        4. 重复判断第i个苹果是否达到陶陶的身高(加上椅子的高度)
                        5. 输出答案

                        代码是这鸭子的:(UP已经消过毒了,放心食用

                        #include<bits/stdc++.h>
                        using namespace std;
                        int a[11],n,i,tt,sum=0;
                        int main(){
                        	for(i=1;i<=10;i++){
                        		cin>>a[i];
                        	}
                        	cin>>tt;
                        	tt+=30;
                        	for(i=1;i<=10;i++){
                        		if(a[i]<=tt) sum++;
                        	}
                        	cout<<sum<<endl;
                        	return 0;
                        }
                        

                        (难道这是最简代码???)

                        题解不易,点个赞吧👍

                        • @ 2022-12-31 20:07:55

                          说得如此高大尚......我忍不住给了个差评。哈哈。

                        • @ 2023-9-13 20:38:02

                          有了!

                        • @ 2024-5-3 21:13:26

                          貌似你发错题了哈哈哈哈哈。。。

                      • -9
                        @ 2022-5-26 19:25:39

                        题目看着很复杂?重复段不知道怎么处理?

                        换个角度,不管重复与否,利用数组把要移除的标记,剩下的统计就行啦~

                        先输入 l和m ,在输入每一段的同时,对数组标记

                        	cin >> l >> m;
                            for(int i=1;i<=m;i++)
                            {
                            	cin >> l1 >> l2;
                            	for(int j=l1;j<=l2;j++)
                            	{
                            		a[j] = 1;
                        		}
                        	}
                        

                        统计未被标记的树

                            for(int i=0;i<=l;i++)
                            {
                        		if(a[i]==0) k++;
                        	}
                        

                        最后输出结果就可以啦~··

                        信息

                        ID
                        1570
                        时间
                        1000ms
                        内存
                        32MiB
                        难度
                        5
                        标签
                        递交数
                        2584
                        已通过
                        951
                        上传者