摘要:
无线通讯网 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话(无线电话的通信距离为无限长)。 每一对哨所之间的通话距离都是同一个D,给定n个哨站和m个收发器, 你的任务是确定收发器必须的最小通话距离D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的) 思路 贪心:n个无线电安排 阅读全文
摘要:
有一些云朵商品,你需要如果商品有搭配关系,则你需要购买具有搭配关系的所有云朵; 已知你的初始财富以及各物品的价钱与价值,求出最大价值 思路 这题一开始写的$O(n^2m)$的暴力,得分为40pt #include<bits/stdc++.h> using namespace std; const i 阅读全文
摘要:
关闭农场 FJ 现在正感兴趣于知道在每一个时间(这里的“时间”指在每一次关闭谷仓之前的时间)时他的农场是否是“全连通的” 思路 这题正向做超时了,正解是倒着想(参考别人的思路),从后往前枚举并依次设置每个农场的状态为开启 #include<bits/stdc++.h> using namespace 阅读全文
摘要:
城市中每条道路都有一个分值,分值越小表示这个道路越繁忙,越需要进行改造。 但是市政府的资金有限,市长希望进行改造的道路越少越好,于是他提出下面的要求: 1.改造的那些道路能够把所有的交叉路口直接或间接的连通起来。 2.在满足要求1的情况下,改造的道路尽量少。 3.在满足要求1、2的情况下,改造的那些 阅读全文
摘要:
一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列。 求长度为 m,每个数都是 1 到 n 之间的正整数的摆动序列一共有多少个。 对于所有评测用例,$1 ⇐ n, m ⇐ 1000$ #include<bits/stdc++.h> using namespace std; cons 阅读全文
摘要:
在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。 所有发送和接收的节点都会将信息存储下来。一条信息只存储一次。 给出小明连接和测试的过程,请计算出每个节点存储信息的大小。 这题要跟着输入数据一步一步模拟才不容易出错, 阅读全文
摘要:
给定 N 包糖果(一包K个,有M种口味),请你计算小明最少买几包,就可以品尝到所有口味的糖果。 思路 对于每一袋糖果,我都可以要或不要: 要的话,需满足:f[nx] 1 || f[nx]>f[i]+1;(nx=i|ST[j],nx是选完第j包糖果后的状态,i是原状态,ST[j]是第j包糖果的贡献,j 阅读全文
摘要:
从n个数中选出 K 个数,使其乘积最大(每个数都很大) 思路 k为奇数时,一定先选最右边的那个数,因为无论为正或为负都对结果贡献最大 k为偶数时,每次从两端选两个数,看哪个大 枯了,这题溢出搞了很久 #include<bits/stdc++.h> using namespace std; typed 阅读全文
摘要:
递增三元组 请你统计有多少个三元组 (i,j,k) 满足: 1≤i,j,k≤N Ai<Bj<Ck 排序+双指针 思路 排序A、B、C,然后固定B的元素B[i],在A里找小于B[i]的数的个数 a、C里找大于B[i]的数的个数 b,对答案的贡献是:a*b #include<bits/stdc++.h> 阅读全文
摘要:
给了你 n 个数,希望你从这 n 个数中找到3个数,使得这三个数的和是 K 的倍数,且这个和最大。 思路 f[i][j][k] 表示从前i个数选j个数,且j个数之和模K为k的最大和,有两种决策: 选第i个数:f[i][j][k]=max(f[i][j][k], f[i-1][j][k]) 不选第i个 阅读全文