首页 > 其他分享 >集训Day 4

集训Day 4

时间:2023-07-27 20:22:39浏览次数:26  
标签:遍历 int DFS 集训 背包 mp ans Day

 

比赛开始,先看了一眼A题,great!这个数据写一个DFS就可以过100%于是就开始写DFS但是一直爆,数组也没越界,也没开太大,我就十分奇怪,于是就这样调了大约十来分钟发现是因为遍历器的问题(我已经因为遍历器炸了2次了,再也不用遍历器了Q w Q)将遍历器换成正常的for循环就过了(get100pt)。然后看了第二题,em……没有思路,为了保分只能硬着头皮写了两个打表的程序,但是,第二个打表的程序没写好,导致直接浪费了30分钟。(哭)最后一会我就写了一个DFS充数。(get40pt)。总分140

B题题解:

这道题是一道01背包(灵异背包),板子部分不再赘述,按照题意将题目转化为 背包容量为S现要求塞入若干个数,每个数的所占空间为其本身大小,装完后要求背包中所有数的最大公约数最大,问最大多少?简单了?

 A题程序:

#include<bits/stdc++.h>
using namespace std;
//const int N=1e3;
int n,m,vis[11451],ans=0;
vector<int> mp[19198];
void dfs(int k,int step)
{
    if(step==n) ans++;
    else
    {
        for(int i=0;i<mp[k].size();i++)
        {
            if(vis[mp[k][i]]==0)
            {
                vis[mp[k][i]]=1;
                dfs(mp[k][i],step+1);
                vis[mp[k][i]]=0;
            }
        }
    }
}
int main()
{
    freopen( "hami.in", "r", stdin );
     freopen( "hami.out", "w", stdout );
    ios::sync_with_stdio(false);
    int t;
    cin>>t;
    while(t--)
    {
        ans=0;
        cin>>n>>m;
        for(int i=1;i<=n;i++) mp[i].clear();
        for(int i=1;i<=m;i++)
        {
            int u,v;
            cin>>u>>v;
            mp[u].push_back(v);
            mp[v].push_back(u);
        }
        for(int i=1;i<=n;i++) vis[i]=0;
        vis[1]=1;
        dfs(1,1);
        printf("%d\n",ans);
    }
    return 0;
}

 

B题程序:

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int S,sum[N],f[N];
int main()
{
    ios::sync_with_stdio(false);
    cin>>S;
    for(int i=1;i<=S;i++) for(int j=2;i*j<=S;j++) sum[i*j]+=i;
    for(int i=1;i<=S;i++) for(int j=S;j>=1;j--) f[j]=max(f[j],f[j-i]+sum[i]);
    int maxn=-100;
    for(int i=1;i<=S;i++) maxn=max(maxn,f[i]);
    cout<<maxn;
    return 0;
}

 

标签:遍历,int,DFS,集训,背包,mp,ans,Day
From: https://www.cnblogs.com/wjk53233/p/17585910.html

相关文章

  • Day06-25 接口
    接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。如果你是天使,则必须能飞;如果你是汽车,则必须能跑;如果......
  • Python基础day54 Django2
    配置文件的介绍#注册应用的INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.......
  • 鸟哥Linux私房菜学习记录day3
    第七章    Linux磁盘与文件系统管理1硬。盘分区:硬盘的分区方式,主要包括基本分区和扩展分区,介绍了硬盘的主引导记录(MBR)和扩展引导记录(EBR)的作用。superblock:记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;inode:记录文......
  • 7.27 day4 树论
    悲报:335->220战绩:100+100+20+0T1求子树sizeT2通过大眼观察严谨的证明后,我们发现\(x_i\)是\(x_i+1\)的祖先的概率和\(x_i+1\)具体是什么无关:我们令\(x_i+1\)一直跳父亲,直到编号小于等于\(x_i\)的那一次。因为父亲是等概率选取的,所以概率就是\(\frac{1}{x_i}\)......
  • vue--day46---组件自定义事件的解绑
    查看vue版本命令npmlistvue1.App.vue<template><div><h1>{{msg}}</h1><!--通过父组件给子组件传递函数的props实现子给父传数据--><School:receiveSchoolName="receiveSchoolName"></School><!--v-on在student组件标签上所以说是在给......
  • day03课程回顾
    课程回顾进制十进制转换二进制十进制数除以2倒取余数二进制转换十进制二进制转换八进制从低位次开始三位一组,如果最高位不足三位补0,将每一组三位二进制转换为八进制八进制转换二进制一个八进制数转换成三个二进制数,不足的位次补0二进制转换十六进制从低位次......
  • 指针DAY3
    指针3指针和多维数组  代码:#include<stdio.h>intmain(){intC[3][2][2]={{{2,5},{7,9}},{{3,4},{6,1}},{{0,8},{11,13}}};printf("%d%d%d%d\n",C,*C,C[0],&C[0][0]);p......
  • [代码随想录]Day01-数组part01
    题目:704.二分查找思路:二分查找一般是在有序的数组中查找指定的值,单纯的查找值,把数组跑一遍的复杂度为O(n)。二分查找每次把范围缩小一半,我们每次都去中间的值,有以下三种情况:如果mid位置的值比target大,那么target应该在mid左侧的位置(由小到大排序情况下)如果mid位置的值比t......
  • day08
    模块的四种模式什么是模块?模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体。一个py文件内部就可以放一堆函数,因此一个py文件就可以看成一个模块。如果这个py文件的文件名为module.py,模块名则是module模块的四种形式在Python中,总共有以......
  • Python基础day53 Django
    web应用的简介因为Django框架是一个专门用来开发web项目的框架1.web应用程序是什么?web应用程序是一种可以通过web访问的应用程序,也就是说只需要一个浏览器即可,不需要其他软件了2.应用程序与有两种模式Django就是开发的B/S应用程序,所以,我们就认为浏览器就是我们......