【CSDN竞赛】第十一期解题报告
创始人
2024-03-13 19:47:25
0

文章目录

  • 感想
      • 关于自己
      • 关于平台
  • 第一题 (难度:简单)
      • 题目描述
      • 100分做法
  • 第二题 (难度:入门)
      • 题目描述
      • 100分做法
  • 第三题 (难度:简单+)
      • 题目描述
      • 100分做法
  • 第四题(难度:中等+)
      • 题目描述
      • 100分做法(证明找其他大佬)

这应该是站内相对详细的解题报告吧。
转载思路请@本人。

感想

关于自己

这一次时间改善了一点点,不过还是不够
前面3题做完后没有什么收获(毕竟挺简单的)。
本人认为题目不能只考做法,还要考思维。
下次努力吧,争取得奖。

关于平台

题目出现原题,还是入门必备的模板题!这种问题不应该再次出现。
手感没有多大变化。
建议将冷却时间改短一些,拜托了。
目前对于本人,系统没出现什么太大的问题,比较稳定(某次比赛除外)。
祝CSDNCSDNCSDN越做越好。

第一题 (难度:简单)

题目描述

最近小艺酱渐渐变成了一个圆滑的形状-球!! 小艺酱开始变得喜欢上球! 小艺酱得到nnn个同心圆。 小艺酱对着nnn个同心圆行染色。 相邻的圆范围内不能有相同的颜色。相隔一层的圆颜色相同。 小艺酱想知道圆最外层的那种颜色全部染了多少?

100分做法

考虑容斥原理,将与外层距离为奇数的面积加上,距离为偶数的面积减去。其中距离为按照半径从小到大排序后间隔的圆的个数。

注意一个问题:圆周率取的越精准越好。
C++C++C++代码如下:

#include
using namespace std;
double r[1005]={};
double pi=3.14159265358979;
int n;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lf",&r[i]);}sort(r+1,r+n+1);double f=1;double ans=0;for(int i=n;i>=1;i--){ans=ans+r[i]*r[i]*pi*f;f=-f;}printf("%.3lf\n",ans);return 0;
}

第二题 (难度:入门)

题目描述

存在nnn个节点,目标节点在mmm。 每个节点有自己的权值aaa。 在权值kkk内(含kkk值)选择一个权值非000节点且与目标节点距离最近。 节点i与节点j的距离为abs(i−j)abs(i-j)abs(i−j)。

100分做法

这一题直接按照题意模拟即可。

C++C++C++代码如下:

#include
using namespace std;
int a[100005]={};
int n,m,k,ans=1000;
int main()
{scanf("%d%d%d",&n,&m,&k);for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(a[i]!=0&&a[i]<=k)ans=min(ans,abs(i-m));}printf("%d\n",ans);return 0;
}

第三题 (难度:简单+)

题目描述

已知存在nnn个宝物,每个宝物都有自己的质量mmm和价值vvv,在考虑选择宝物时只能选择总质量小于等于MMM的方案,请问在最方案下选择宝物,能获取到最大价值VVV是多少?

100分做法

01背包问题模板,只要学过动态规划都能做对的一道题。
设dpi,jdp_{i,j}dpi,j​表示前iii个物品,背包大小为jjj的最大价值,
则dpi,j=max(dpi,j,dpi−1,j−mi+vi)dp_{i,j}=max(dp_{i,j},dp_{i-1,j-m_i}+v_i)dpi,j​=max(dpi,j​,dpi−1,j−mi​​+vi​)。
直接按照模板打上去即可。

C++C++C++代码如下:

#include
using namespace std;
int m[100005]={},v[100005]={},dp[1005]={};//滚动数组
int n,M;
int main()
{scanf("%d%d",&n,&M);for(int i=1;i<=n;i++){scanf("%d%d",&m[i],&v[i]);for(int j=M;j>=m[i];j--){dp[j]=max(dp[j],dp[j-m[i]]+v[i]);//将第一维滚动掉}}printf("%d\n",dp[M]);return 0;
}

第四题(难度:中等+)

题目描述

有NNN个客人与足够多张的圆桌。主人安排每位客人坐在一个圆桌边,但是每位客人希望自己左右边上分别有一些空座位,不然会觉得害羞。注意,如果一个客人所在的圆桌只有他一个人,那么他左边的空座位数量就是他右边的空座位数量。 试问主人需要准备多少个座位,才能让每个客人舒适的坐下。

100分做法(证明找其他大佬)

贪心算法。考场上乱推代码莫名对了。
这也是为什么我用的是CCC语言,因为我怕我打的C++C++C++修改后不能撤回来了。
将lll和rrr分别从小到大排序,然后一一匹配求最大值,相加后加上人数就是答案。

CCC代码如下:

#include
#include
long long a[100005]={},b[100005]={},c[100005]={};
int n;
long long max(long long x,long long y){return x>y?x:y;}
void msort(int l,int r)
{if(l>=r)return;int mid=(l+r)>>1;msort(l,mid);msort(mid+1,r);int i=l,j=mid+1,k=l;while(i<=mid&&j<=r){if(a[i]scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld%lld",&a[i],&b[i]);}msort(1,n);for(int i=1;i<=n;i++){long long t=a[i];a[i]=b[i];b[i]=t;}msort(1,n);long long ans=0;for(int i=1;i<=n;i++){ans+=max(a[i],b[i]);}printf("%lld\n",ans+n);return 0;
}

相关内容

热门资讯

VITURE与XREAL专利纠... 文/VR陀螺 12月圣诞假期前夕,一则有关VITURE和XREAL的专利纠纷,将两家AR头部厂商卷入...
*ST奥维及控股子公司新增诉讼... 12月25日,*ST奥维(002231)发布公告,截至本公告披露日,公司及控股子公司在连续12个月内...
“十四五”时期临沂市深化医保制... 大众网记者王萍 临沂报道 12月25日,临沂市人民政府新闻办公室召开临沂市“高质量完成‘十四五’规...
平顶山学院:一堂聚焦矛盾调解的... 为深化法治校园建设,提升师生法治意识与基层治理认知,12月23日下午,平顶山市公安局新华分局“老贺调...
原创 6... 在充满变数的时代浪潮中,历史的阴影始终笼罩着东亚大地。日前,日本解密的6800多页外交档案犹如一把尖...
浙江出台首部海洋经济省级综合性... 记者12月25日从浙江省海洋经济发展厅获悉,近日浙江省十四届人大常委会第二十一次会议审议并通过《浙江...
比亚迪起诉自媒体“龙哥讲电车”... IT之家 12 月 25 日消息,今日比亚迪法务部官微发文称,近期,就比亚迪起诉“龙哥讲电车”、“满...
为解燃眉之急,珠海法官将三地6... “我们的账户解冻了,公司有救了!” 拿到账户解封通知的那一刻,某建筑公司负责人李某悬了几个月的心终于...
泽大律师事务所律师马恺浓:快手... 12月22日晚间,快手平台突发大规模内容安全事件,多个直播间短时间内涌入大量露骨色情内容,违规内容传...
江苏首部民营经济专项法规,明年... 新悉,《南通市人民代表大会常务委员会关于促进民营经济高质量发展的决定》将于2026年1月1日起正式施...