The First Day at School

本文介绍了一个使用C++实现的课程安排算法,该算法能够根据不同天数为学生安排课程,并通过二维向量记录课程信息。文章包含完整的源代码,展示了如何处理输入数据并合理安排课程以最大化每节课的内容展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The First Day at School
写疯了:

//============================================================================
// Name        : test.cpp
// Author      : Qihan
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <bits/stdc++.h>
#define pi acos(-1.0)
using namespace std;
typedef long long int LLI;
typedef pair<LLI,LLI> PII;
#define Lowbit(x) (x & (-x))
const int inf = 0x3f3f3f;
const int maxn = (1000 + 10);

vector<int> Map[10][10];

char str[maxn][maxn];
int len[maxn];
string day;


int maxmap[10][10];

int x[10];
int y[10];
bool flag[maxn];


int main() {
//    freopen("/home/qihan/Documents/in","r",stdin);
//    freopen("/home/qihan/Documents/out1","w",stdout);
    int n;
    scanf("%d",&n);
    int cnt = 0;
    int last = 0;
    memset(flag,true,sizeof(flag));
    memset(maxmap,0,sizeof(maxmap));
    for(int i = 0; i < n; i ++) {
        char c;
        while(scanf("%s%c",str[cnt],&c)) {
            len[cnt] = strlen(str[cnt]);
            cnt ++;
            if(c == '\n')   break;
        }
        int num;
        cin >> day >> num;
        for(int k = last; k < cnt; k ++) {
            if(day == "Tuesday") {
                Map[num][1].push_back(k);
            } else if(day == "Thursday") {
                Map[num][2].push_back(k);
            } else {
                Map[num][3].push_back(k);
            }
        }
        last = cnt;
    }
    for(int i = 1; i <= 4; i ++) {
        y[i] = 1;
        for(int j = 1; j <= 3; j ++) {
            int  temp = Map[i][j].size();
            y[i] = max(y[i],temp);
        }
    }

    for(int i = 0; i < 34; i++) {
        if(i % 11 == 0) printf("+");
        else            printf("-");
    }
    printf("\n");

    for(int s = 1; s <= 4; s ++) {
        bool vis = false;
        while(!vis) {
            vis = true;
            printf("|");
            for(int k = 1; k <= 3; k ++) {
                if(maxmap[s][k] >= Map[s][k].size()){
                    for(int i = 0;i < 10;i ++)  printf(" ");
                }else{
                    int mins = 0;
                    int lx = maxmap[s][k];
                    for(;lx < Map[s][k].size();lx ++){
                        int ll = Map[s][k][lx];
                        if(mins + len[ll] <= 10){
                            printf("%s",str[ll]);
                            mins = mins + len[ll];
                            if(mins < 10)   {
                                printf(" ");
                                mins ++;
                            }
                            maxmap[s][k] ++;
                        }else{
                            vis = false;
                            break;
                        }
                    }
                    while(mins < 10)  {
                        printf(" ");
                        mins ++;
                    }
                }
                printf("|");
            }
            printf("\n");
        }
        for(int i = 0; i < 34; i++) {
            if(i % 11 == 0) printf("+");
            else            printf("-");
        }
        printf("\n");
    }
    return 0;
}
任务描述 本关任务:编写程序,统计一段英文段落中所有字符出现的次数 相关知识 为了完成本关任务,你需要掌握:字典应用 字典应用 Python中的字典是另一种可变容器,且可存储任意类型对象。 Python中创建字典的一般形式如下: 字典名={键1:值1,键2:值2,…,键n:值n} 字典就是用大括号括住的键值对的集合。字典的数据类型名称是dict。如果大括号中没有项,则表示一个空字典。字典中的的键和值可以是任意数据类型。 通过赋值语句添加一个新的键值对。 语法格式:字典对象名[新键]=新值 例如: 1 = {'Name': 'John', 'Age': 17, 'Class': 'A01'} d1['School']='First Middle School' print(d1) 输出结果为:{'Name': 'John', 'Age': 17, 'Class': 'A01', 'School': 'First Middle School'} 编程要求 根据提示,在右侧编辑器补充代码,统计一段英文段落中所有字符出现的次数。 要求输出9个统计项后换行。 测试说明 平台会对你编写的代码进行测试: 测试输入:I have a lovely dog named Bobby.He looks pretty with short legs,big ears and short tail.He is my good friend and he is also easy to take care of.I walk him at least twice a day,feed him and spend time with him.He also gives his love to me in return. 预期输出: 每个字符出现的次数如下: ('I', 2),(' ', 49),('h', 10),('a', 18),('v', 4),('e', 24),('l', 10),('o', 15),('y', 6), ('d', 10),('g', 5),('n', 8),('m', 7),('B', 1),('b', 3),('.', 5),('H', 3),('k', 3), ('s', 14),('p', 2),('r', 8),('t', 15),('w', 4),('i', 15),(',', 2),('f', 3),('c', 2), ('u', 1), 开始你的任务吧,祝你成功!
04-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值