当前位置: 首页 > news >正文

每日总结4.2

蓝桥杯刷题:

1.
方格分割(dfs,选中心点,开始上下左右遍历,达到边界时数量加一)

#include <bits/stdc++.h>
using namespace std;
bool vis[10][10];
int mp[10][10];
int ans=0;
int dx[4]={1,0,0,-1};
int dy[4]={0,1,-1,0};
void dfs(int x,int y)
{
  if(x==0||y==0||x==6||y==6)
  {
    ans++;
    return;
  }
  vis[x][y]=true;
  for(int i=0;i<4;i++)
  {
    int tx=x+dx[i];
    int ty=y+dy[i];
    if(!vis[tx][ty])
    {
      vis[tx][ty]=true;
      vis[6-tx][6-ty]=true;
      dfs(tx,ty);
      vis[tx][ty]=false;
      vis[6-tx][6-ty]=false;
    }
  }
}
int main()
{
  dfs(3,3);
  cout<<ans/4;
  return 0;
}

2.
日期问题(暴力枚举)
(枚举出1960到2059年的所有日期,判断输入日期是否在里面)
(printf(“%02d”,num)  :  输出两位数,位数不够前面补0)


#include <iostream>
using namespace std;
int main()
{
  int a,b,c;
  scanf("%d/%d/%d",&a,&b,&c);
  int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  for(int year=1960;year<=2059;year++)
  {
    month[2]=28;
    if((year%4==0&&year%100!=0)||year%400==0)
    {
      month[2]=29;
    }
    for(int i=1;i<13;i++)
    {
      for(int day=1;day<=month[i];day++)
      {
        if((year%100==a&&i==b&&day==c)||(i==a&&day==b&&year%100==c)||(day==a&&i==b&&year%100==c))
        {
          printf("%d-%02d-%02d\n",year,i,day);
        }
      }
    }
  }
  return 0;
}


3.
包子凑数
(组合,完全背包问题,先遍历物品再遍历背包,正序遍历)


#include<bits/stdc++.h>
using namespace std;
#define int long long
int dp[100000],a[10000];
int gcd(int x,int y)
{
  int cmax=max(x,y);
  int num=1;
for(int i=1;i<=cmax;i++)
{
  if(x%i==0&&y%i==0)
  {
    num=i;
}
}
return num;
}
signed main()
{
  int n;
  dp[0]=1;
  cin>>n;
  cin>>a[0];
  cin>>a[1];
  int g;
  g=gcd(a[0],a[1]);
  for(int i=2;i<n;i++)
  {
    cin>>a[i];
    g=gcd(a[i],g);
  }
  if(g!=1)
  {
    cout<<"INF";
    return 0;
  }
  for(int i=0;i<n;i++)
  {
    for(int j=1;j<=100000;j++)
    {
      if(j<a[i]){continue;}
      else{dp[j]=dp[j]+dp[j-a[i]];}
    }
  }
  int ans=0;
  for(int i=1;i<100000;i++)
  {
    if(dp[i]==0)
  {ans++;}
  }
  cout<<ans;
}

力扣刷题
完全背包问题
1.
518.零钱兑换
(组合,完全背包问题,先遍历物品再遍历背包,正序遍历)
递推公式:dp[j]=dp[j]+dp[j-coins[i]];

int change(int amount, int* coins, int coinsSize) {
    uint64_t dp[amount+10];
    memset(dp,0,sizeof(dp));
    dp[0]=1;
    for(int i=0;i<coinsSize;i++)
    {
        for(int j=coins[i];j<=amount;j++)
        {
            dp[j]+=dp[j-coins[i]];
        }
    }
    return dp[amount];
}


2.
416.分割等和子集
bool canPartition(int* nums, int numsSize) {
    if (numsSize < 2) {
        return false;
    }
    int sum = 0, maxNum = 0;
    for (int i = 0; i < numsSize; ++i) {
        sum += nums[i];
        maxNum = fmax(maxNum, nums[i]);
    }
    if (sum & 1) {
        return false;
    }
    int target = sum / 2;
    if (maxNum > target) {
        return false;
    }
    int dp[target + 1];
    memset(dp, 0, sizeof(dp));
    dp[0] = true;
    for (int i = 0; i < numsSize; i++) {
        int num = nums[i];
        for (int j = target; j >= num; --j) {
            dp[j] |= dp[j - num];
        }
    }
    return dp[target];
}

417.

3.
494.目标和
(回溯,超时)

int count;
void dfs(int* nums, int numsSize, int target,int num,int sum)
{
    if(num==numsSize)
    {
        if(sum==target)
        {count++;}
        return;
    }
    else
    {
        dfs(nums,numsSize,target,num+1,sum+nums[num]);
        dfs(nums,numsSize,target,num+1,sum-nums[num]);
    }
}
int findTargetSumWays(int* nums, int numsSize, int target) {
    count=0;
    dfs(nums,numsSize,target,0,0);
    return count;
}

http://www.dtcms.com/a/106894.html

相关文章:

  • 深入理解Python asyncio:从入门到实战,掌握异步编程精髓
  • 为什么你涨不了粉?赚不到技术圈的钱?
  • 教务系统ER图
  • 大模预测法洛四联症的全方位研究报告
  • 特征融合后通道维度增加,卷积层和线性层两种降维方式
  • Ubuntu交叉编译器工具链安装
  • SpringBoot集成OAuth2.0
  • [MySQL初阶]MySQL数据库基础
  • jdk21新特性详解使用总结
  • TypeScript extends 全面解析
  • work02_1 计算这两个日期之间相隔的天数
  • 手机改了IP地址,定位位置会改变吗?
  • Java面试黄金宝典29
  • 蓝桥备赛指南(13):填空签到题(1-1)
  • 车辆控制解决方案
  • 如何通过安当TDE透明加密实现MySQL数据库加密与解密:应用免改造,字段与整库加密全解析
  • MySQL主从复制(四)
  • WEB安全--文件上传漏洞--其他绕过方式
  • OpenLayers:封装Overlay的方法
  • WASM I/O 2025 | MoonBit获Kotlin核心开发,Golem Cloud CEO高度评价
  • 人工智能赋能管理系统,如何实现智能化决策?
  • 操作系统(中断 异常 陷阱) ─── linux第28课
  • 脑影像分析软件推荐 | JuSpace
  • 【kubernetes】pod拉取镜像的策略
  • 关于SQL子查询的使用策略
  • ​自动化网络架构搜索(Neural Architecture Search,NAS)
  • RNN模型与NLP应用——(9/9)Self-Attention(自注意力机制)
  • 1Panel 面板 宝塔面板 Ubuntu 24.04
  • 叁仟数智指路机器人是否支持远程监控和管理?
  • Rclone同步Linux数据到google云盘