3、17笔记

简介: 3、17笔记

费解的开关:


枚举情况求最值、最优解的套路:


卡壳原因:套路的细节不熟悉


1.1


在枚举情况前,变量设置res,求最小值要设置一个大的数0x3f3f3f3f,最大值要设置小的数


枚举的每一种情况里要设置一个变量来统计这种情况的值,数量,末尾要和res比较


枚举完后再输出


1.2如果枚举的是操作情况,在枚举前要对被操作对象备份,操作后要还原对象

        int res = 0x3f3f3f3f;
        memcpy(backup,f,sizeof f);
        // 错误:备份的位置错误,应该输入后再备份,对备份的位置不熟悉
        for(int op = 0;op < 32;op++){
            int cnt = 0; 
            for(int i = 0;i < 5;i++)//卡壳,不熟悉位运算枚举开关点按情况的操作
            {
                if(op >> i & 1){
                    turn(0,i);
                    // 错误,这题下表用了0~4,对第一行操作应该是0才对,没有确认好下标
                    //卡壳,不熟悉位运算枚举里的坐标获取;
                    cnt++;
                }
            }
            for(int i = 0;i < 4;i++){
                for(int j = 0;j < 5;j++){
                    if(f[i][j] == '0'){
                        turn(i+1,j);
                        cnt++;
                    }
                }
            }
            bool all_turn_on = true;
            for(int i = 0;i < 5;i++){
                if(f[4][i] == '0') all_turn_on = false;
            }
            if(all_turn_on) res = min(res,cnt);
            // 错误:res应该是在所有可能都枚举完后才判断是否没有符合题意的res要赋值-1的
            memcpy(f,backup,sizeof f);
        }
        if(res > 6) res = -1;
        cout << res << endl;

输入数据与变量数据类型选择的套路

卡壳原因,见过没总结,踩陷阱了,题目输入的点阵之间没有空格,我没有注意到这个点,用int读入数据,结果直接把整一行当做一个数字读入了

如果输入的数据之间没有空格,要把数据当作字符来读取,不能用整型或浮点型来读取

char f[N][N];
for(int i = 0;i < 5;i++){
            for(int j = 0;j < 5;j++){
                cin >> f[i][j];
            }
        }
  1. 坐标移动的枚举套路

卡壳原因:不熟悉套路的细节,没有判断边界

int dx[] = {1,-1,0,0,0},dy[] = {0,0,1,-1,0};
    for(int i = 0;i < 5;i++){
        int a = x + dx[i];
        int b = y + dy[i];
        if(a < 0 || a >=5 || b < 0 || b >=5)continue;
        // 错误:没有判断边界,对坐标移动的相关注意点不熟
        //         if (a < 0 || a >= 5 || b < 0 || b >= 5) continue;   // 在边界外,直接忽略即可
        f[a][b] ^= 1;
    }
目录
相关文章
|
2天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1020 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1716 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
659 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
623 13
|
10天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
695 151