上机练习第51天

第一题

个人总结:直接秒除60得总分,分除60得总时,再秒%60得余数,分%60得余数,输出即可。

代码如下:

复制代码
#include<stdio.h>
int main(){
	int t;
	scanf("%d",&t);
	int h=0,m=0;
	m=t/60;
	t=t%60;
	h=m/60;
	m%=60;
	printf("%d:%d:%d\n",h,m,t);
    return 0;
}

第二题

个人总结:利用BFS算法,分别判断出黑和白当前是否能放置此位置,若能则下一行继续判断,直至遍历整个数组,此时总数+1,继续下一个判断,不能则回溯至原位跳过此次判断。

代码如下:

复制代码
#include <stdio.h>
#include <string.h>
int n;
int board[8][8];  
int black_col[8];      
int black_diag1[15];  
int black_diag2[15];  
int white_col[8];     
int white_diag1[15];   
int white_diag2[15];  
int total;  
void dfs(int row) {
    if (row == n) {
        total++;
        return;
    }
    for (int col = 0; col < n; col++) {
        if (board[row][col] == 0) continue; 
        int d1 = row + col;
        int d2 = row - col + n - 1;
        if (!black_col[col] && !black_diag1[d1] && !black_diag2[d2]) {
            black_col[col] = 1;
            black_diag1[d1] = 1;
            black_diag2[d2] = 1;
            for (int wcol = 0; wcol < n; wcol++) {
                if (board[row][wcol] == 0 || wcol == col) continue;  
                int wd1 = row + wcol;
                int wd2 = row - wcol + n - 1;
                if (!white_col[wcol] && !white_diag1[wd1] && !white_diag2[wd2]) {
                    white_col[wcol] = 1;
                    white_diag1[wd1] = 1;
                    white_diag2[wd2] = 1;
                    dfs(row + 1);
                    white_col[wcol] = 0;
                    white_diag1[wd1] = 0;
                    white_diag2[wd2] = 0;
                }
            }
            black_col[col] = 0;
            black_diag1[d1] = 0;
            black_diag2[d2] = 0;
        }
    }
}

int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf("%d", &board[i][j]);
        }
    }
    memset(black_col, 0, sizeof(black_col));
    memset(black_diag1, 0, sizeof(black_diag1));
    memset(black_diag2, 0, sizeof(black_diag2));
    memset(white_col, 0, sizeof(white_col));
    memset(white_diag1, 0, sizeof(white_diag1));
    memset(white_diag2, 0, sizeof(white_diag2));
    total = 0;
    dfs(0);
    printf("%d\n", total);
    return 0;
}

翻译

过拟合是机器学习模型训练过程中常见的一个问题。当模型在训练数据上表现极为出色但在测试数据上表现欠佳时,就被认为出现了过拟合现象。这通常发生在模型过于复杂或训练数据量不足的情况下。为了减少过拟合,研究人员提出了多种技术,如正则化、数据增强和交叉验证。正则化方法在损失函数中引入惩罚项,以限制模型参数的值,从而使得模型更加简单且更稳定。数据增强通过应用旋转、裁剪或添加噪声等操作来增加训练数据的多样性。此外,交叉验证通过反复将数据集划分为训练集和验证集来评估模型的泛化能力。这些技术能够有效提高机器学习模型在实际应用中的性能。

单词打卡

相关推荐
Nil2084 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
-dzk-5 小时前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点5 小时前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
吃着火锅x唱着歌5 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王5 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy5 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 中的 lambda 表达式
java·c++·面试
依然鸣6 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试
沙盘客6 小时前
AFSIM 14篇 C++ 插件开发:扩展你的仿真能力
c++·后端
NeilYuen6 小时前
【vemory】高性能KV存储AOF方案设计
linux·c++·redis·缓存