1、圆小艺
最近小艺酱渐渐变成了一个圆滑的形状-球!! 小艺酱开始变得喜欢上球! 小艺酱得到n个同心圆。 小艺酱对着n个同心圆进行染色。 相邻的圆范围内不能有相同的颜色。相隔一层的圆颜色相同。 小艺酱想知道圆最外层的那种颜色全部染了多少?
先按半径大小排序
奇数层染一种颜色,偶数层染一种
最后根据n的奇偶性输出
简单来说就是大圆减小圆,循环遍历。
2、K皇把妹
存在n个节点,目标节点在m。 每个节点有自己的权值a。 在权值k内(含k值)选择一个权值非0节点且与目标节点距离最近。 节点i与节点j的距离为abs(i-j) 。
#include<bits/stdc++.h>
using namespace std;
#define f(i,j,k) for(register int i=j;i<=k;++i)
#define g(i,j,k) for(register int i=j;i>=k;--i)
int n,m,s,l;
int a[20202020];
signed main(){
cin>>n>>m>>s;l=-1e9;
f(i,1,n)scanf("%lld",&a[i]);
f(i,1,n)if(a[i]&&a[i]<=s){
if(abs(l-m)>abs(i-m))l=i;
}
cout<<abs(l-m);
return 0;
}
3、筛选宝物
已知存在n个宝物,每个宝物都有自己的质量m和价值v,在考虑选择宝物时只能选择总质量小于等于M的方案,请问在最
优方案下选择宝物,能获取到最大价值V是多少?
01背包问题,博客上有许多,这里不再讲解。
4、圆桌问题
有N个客人与足够多张的圆桌。主人安排每位客人坐在一个圆桌边,但是每位客人希望自己左右边上分别有一些空座位,不然会觉得害羞。注意,如果一个客人所在的圆桌只有他一个人,那么他左边的空座位数量就是他右边的空座位数量。 试问主人需要准备多少个座位,才能让每个客人舒适的坐下。
这道题我的思路也不清晰,没做出来。