问题标题: 酷町堂:1224

0
0
已解决
包涵宇
包涵宇
中级天翼
中级天翼

献上0分代码!!!

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int n,a[510],b[510],j=1;
int main(){
    a[0]=0;
    while(1){
        int s=0;
        cin>>n;
        if(n==-1)break;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            if(a[i]>a[i-1])s++;
        }
        b[j++]=s;
    }
    for(int i=1;i<j;i++)cout<<b[i]<<"\n";
    return 0;
}

进过我的检查,代码主题无误,样例真确!!!

不要代码!!!只要错误原因!!!


0
已采纳
董子墨
董子墨
中级天翼
中级天翼

你的贪心思路不对

具体思路信息学奥赛一本通上有

董子墨在2020-03-27 13:17:42追加了内容

你遍历到当前这个卫星的时候,应该遍历之前所有系统,如果这个卫星高于之前所有系统的高度,就应该再增设一套系统;如果这个卫星不高于之前的某一套系统的最低高度,就应该把那套系统的最低高度变成这个卫星的高度;如果有多套系统符合条件,就选择符合条件的系统中高度最低的。

0
0
董宇昊
董宇昊
初级启示者
初级启示者

 献上核心代码:

while循环(true) {
        输入>>n;
        如果(n == -1) 退出循环;
        count = 0;
        for循环(int i=1; i<=n; i++) {
            输入 >> s[i];
        }
        for循环(int i=1; i<=n; i++) {
            bool flag = false;
            for循环(int j=1; j<=count; j++) {
                如果(last[j] >= s[i]) {
                    last[j] = s[i];
                    flag = true;
                    退出循环;
                }
            }

望采纳,谢谢!

0
我要回答