训练十三

题目

Problem A Secret of Chocolate Poles

题意就是有高度为1的黑块和白块,还有高度为k的黑块,要求底层和顶层都是黑色,问高度不超过h的所有摆放可能的方法

思路: 动态规划进行状态转移.

用dp[i][j] 来表示高度为i,顶层颜色为j时候的摆放方案数,j 为 0 代表白色,j 为 1代表 黑色

#include<bits/stdc++.h>
using namespace std;

long long dp[110][2];

int main(){
    long long l,k;
    cin >> l >> k;
    dp[1][1] = 1;
    dp[0][0] = 1;
    for(int i = 2;i <= l;i++){
        dp[i][1] = dp[i-1][0];
        dp[i][0] = dp[i-1][1];
        if(i >= k){
            dp[i][1] += dp[i-k][0];
        }
    }
    long long sum = 0;
    for(int i = 1;i <= l;i++){
        sum += dp[i][1];
    }
    cout << sum << endl;
}

Problem C Medical Checkup

有n个学生去体检,每个学生每次检测耗时ti,学生排成一队,有无限个体检机器,也拍成一列,学生必须按顺序一个一个体检,一个机器同一时刻只能检查一名同学,求t时刻,每名同学的位置。

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
ll n,t;

int main(){
    cin >> n >> t;
    ll x;ll Max = 0;ll sum = 0;
    for(int i = 1;i <= n;i++){
        cin >> x;
        sum += x;
        Max = max(Max,x);
        if(sum > t){
            cout << 1 << endl;
        }else{
            cout << (t-sum)/Max + 2 << endl;
        }
    }
}

Problem B Parallel Lines

给n个点,n为偶数,把这些点练成线段,每个顶点只能属于一条线段,问最多的平行边的组数。

一开始我想错了,没有考虑图中存在两种斜率的直线的情况,于是我一直跑不过最后一个sample,没明白12怎么来的。

后来队友说直接暴力搜索dfs,
复杂度是151311…3,大概在210e6左右

参照了别人的题解写的dfs,
自己写的话大概还是要调试挺久的。

#include<bits/stdc++.h>
using namespace std;

map<int, map<int, int> > MP;
int x[20], y[20],vis[20];
int n;
int res;

void dfs(int pos, int step, int sum) {
	if (step > n / 2) {
		res = max(res, sum);
		return;
	}
	if (vis[pos]) dfs(pos + 1, step, sum);
	else {
		vis[pos] = 1;
		for (int i = pos + 1; i <= n; i++) {
			if (vis[i]) continue;
			vis[i] = 1;

			int dx, dy;
			if (x[pos] == x[i]) {
				dx = dy = 0;
			}
			else if (y[pos] == y[i]) {
				dx = 0;
				dy = 100000;
			}
			else {
				dy = y[pos] - y[i];
				dx = x[pos] - x[i];
				int t = __gcd(abs(dx), abs(dy));
				dy /= t; dx /= t;
				if (dx < 0) dx *= -1, dy *= -1;
			}

			MP[dx][dy]++;
			dfs(pos + 1, step + 1, sum + MP[dx][dy] - 1);
			MP[dx][dy]--;


			vis[i] = 0;
		}

		vis[pos] = 0;

	}
}
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> x[i] >> y[i];
	}
	dfs(1, 1, 0);
	cout << res << endl;
}

Problem I Starting a Scenic Railroad Service

给了n个人上车的站点和下车的站点,求安排位置的最大数量和最小数量。

看了别人的题解真的猛啊,先是记录上车的点,和下车的点,还记录了一个d,人数的变化。

然后再从前往后扫一遍,就仿佛让静态的点的记录在时间上具有了意义,
这个扫就好像时间轴一样,真的牛逼。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 100010;
int up[maxn],down[maxn],d[maxn];
int x[maxn],y[maxn];

int main(){
    int n;
    for(int i = 1;i <= n;i++){
        cin >> x[i] >> y[i];
        up[x[i]]++,down[y[i]]++,d[x[i]]++,d[y[i]--;
    }
    for(int i = 1;i <= n;i++){
        up[i] += up[i-1];
        down[i] += down[i-1];
        d[i] += d[i-1];
    }
    int ans1 = 0,ans2 = 0;
    for(int i = 1;i <= n;i++){
        ans1 = max(ans1,up[y[i]] - down[x[i]]);
        ans2 = max(ans2,d[y[i]]);
    }
    cout << ans1 << " " << ans2 << endl;
}

没有做出来的题目

Problem F Pizza Delivery

给一个有向图,初始保证1 到 2存在最短路。
下面给出图的m条边,然后之后的m天中,每次都有一条边进行逆转,问那天1到2 的最短路发生怎么样的变化,不变 输出 SOSO,变小 输出 HAPPY,变大了输出 SAD.

Problem G Rendezvous on a Tetrahedron

就是一个正四面体,给定两个方向和距离,从顶点出发,问最后在不在同一个面上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 第十三届蓝桥杯EDA赛训练试题二资源包是一份用于训练和竞赛的资源包。该资源包提供了一系列的题目和相应的测试数据供选手使用。 首先,这份资源包包含了一些常见的EDA(Electronic Design Automation,电子设计自动化)技术题目。这些题目涉及到电路设计、逻辑综合、布图优化等方面的知识,并要求选手通过编程的方式完成相应的算法实现。选手可以运用已学的EDA技术知识和算法,解决特定的电路设计问题。 此外,资源包还提供了相应的测试数据。这些测试数据是为了验证选手算法实现的正确性和效率。选手需要运用自己的编程能力,通过读取测试数据,计算出相应的结果,并和预期答案进行对比,以判断算法是否正确。这样的测试数据能够帮助选手了解自己算法的性能表现,并不断优化自己的算法。 通过训练试题二资源包,选手可以提高自己的EDA技术水平和编程能力。通过解决这些设计问题,选手可以深入理解EDA技术在实际应用中的作用和意义。同时,选手还可以通过与其他选手的对比,了解自己与其他选手之间的竞争对手。 总之,第十三届蓝桥杯EDA赛训练试题二资源包提供了一系列的EDA技术题目和相应的测试数据,帮助选手提高自己的电路设计和编程能力。选手通过解决这些问题,可以深入了解EDA技术在实际应用中的作用,并锻炼自己的竞赛能力。 ### 回答2: 第十三届蓝桥杯EDA赛训练试题二资源包包含了各种必要的资源和工具,供参赛选手使用和学习。这些资源包括以下几个方面: 1. 题目说明:资源包中包含了各个题目的详细说明和要求,包括题目的背景、要求和限制条件等。选手可以根据这些说明来理解题目的要求,然后制定相应的解题方案。 2. 数据集:资源包中还包括了与每个题目相关的数据集,这些数据集是选手用来进行算法设计和测试的基础。选手可以根据题目要求,使用这些数据集进行算法的开发和测试。 3. 工具包:资源包中还包含了一些常用的工具和库,方便选手进行算法开发和调试。这些工具包括编程语言的开发环境、数据分析和可视化工具、常用的数据结构和算法库等。选手可以根据自己的喜好和需求,选择合适的工具来进行算法的开发和实现。 4. 参考资料:此外,资源包中还提供了一些与题目相关的参考资料,包括算法原理和实现细节等。选手可以通过阅读这些资料,加深对题目背景和算法的理解,提高解题的效率和质量。 总体而言,第十三届蓝桥杯EDA赛训练试题二资源包是为了帮助选手更好地进行算法设计和实现,提供了题目说明、数据集、工具包和参考资料等方面的支持。选手可以根据这些资源的帮助,更好地理解题目要求,进行算法的开发和测试,提高比赛成绩。 ### 回答3: 第十三届蓝桥杯EDA赛训练试题二的资源包主要包含以下内容: 1. 电路图:资源包中包含了待设计的电路图,电路图上标有各个元件的类型和数值,需要选手根据要求进行逻辑设计和仿真。 2. EDA工具:资源包中还包含了EDA(Electronic Design Automation)工具,例如常用的电路设计软件,如Multisim、Cadence、TINA等。选手可以使用这些工具进行电路设计、仿真和分析。 3. 参考资料:资源包中还提供了一些参考资料,包括电路设计、EDA软件使用指南、电路分析方法等等,这些资料可以帮助选手更好地理解题目要求和使用EDA工具。 通过这个资源包,选手可以获得电路图、EDA工具和相关资料来进行电路设计和仿真实验。选手需要先仔细阅读题目要求和参考资料,然后使用EDA工具进行电路设计和仿真。他们可以通过连接各个元件、设定元件的数值、运行仿真等步骤来完成任务。 在设计和仿真过程中,选手需要注意电路的准确性、稳定性、可靠性和性能等方面的要求。他们还需要通过分析仿真结果,验证电路设计是否满足题目要求,并进行必要的调整和优化。 综上所述,第十三届蓝桥杯EDA赛训练试题二的资源包为选手提供了进行电路设计和仿真的基础工具和资料,选手需要结合题目要求和参考资料,使用EDA工具进行电路设计和仿真,并根据仿真结果进行优化和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值