Problem 1: 韬韬抢苹果(100分)

题目大意:又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果。每个韬韬都想要最大的苹果,所以发生了争执,为了解决他们的矛盾,出题人定了一项特殊的规则,按体重的大小来定顺序,每一轮都是先由胖的先摘(照顾胖子),每个韬韬都是很聪明的,不会错过眼前最大的苹果。现在问题来了,一共有n个苹果,m个韬韬,要你按原顺序输出每个韬韬可以抢到的苹果的总大小。

水题

Problem 2: 开场舞蹈(100分)

题目大意:

在全世界人民的期盼下,2008年北京奥林匹克运动会终于隆重召开了!

为了展示中华民族博大精深的优秀传统文化,负责开幕式开场舞蹈的编排人员一丝不苟,每一个细节都力争完美。关于队伍是采用“天圆”阵还是“地方”阵的问题,大家讨论了七天七夜,仍没有结果。于是,他们希望借助计算机,计算两种阵型的成本。

队伍将排列在一个二维平面内,且必须以(0,0)点为中心使得队伍保持对称美。“天圆”阵是一个圆形,而“地方”阵则是一个边平行于坐标轴的正方形。由于某种因素,阵型要求覆盖某些点(可以在边上)。

你的任务是,计算出能够覆盖这些点的两种阵型的最小面积。

水题

Problem 3: 架设电话线

题目大意:

Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务。于是,FJ必须为此向电信公司支付一定的费用。

FJ的农场周围分布着N(1 <= N <= 1,000)根按1..N顺次编号的废弃的电话线杆,任意两根电话线杆间都没有电话线相连。一共P(1 <= P <= 10,000)对电话线杆间可以拉电话线,其余的那些由于隔得太远而无法被连接。

第i对电话线杆的两个端点分别为A_i、B_i,它们间的距离为L_i (1 <= L_i <= 1,000,000)。数据中保证每对{A_i,B_i}最多只出现1次。编号为1的电话线杆已经接入了全国的电话网络,整个农场的电话线全都连到了编号为N的电话线杆上。也就是说,FJ的任务仅仅是找一条将1号和N号电话线杆连起来的路径,其余的电话线杆并不一定要连入电话网络。

经过谈判,电信公司最终同意免费为FJ连结K(0 <= K < N)对由FJ指定的电话线杆。对于此外的那些电话线,FJ需要为它们付的费用,等于其中最长的电话线的长度(每根电话线仅连结一对电话线杆)。如果需要连结的电话线杆不超过K对,那么FJ的总支出为0。

请你计算一下,FJ最少需要在电话线上花多少钱。

拆点+spfa

or

二分

二分方法:mid表示最小的代价,spfa跑一遍,如果走的边权大于mid,那么将它免费。最后免费个数小于或等于k,就把mid向下移,否者向上移。

Problem 4: 水果店(100分—>9分,没判断-1,题意没理解清楚)

题目大意:

在一个市上,存在着很多的空地和住宅。现在,城市中新开了一个水果店,为了向城市居民问好,水果店决定派两个送货员向每一处住宅送一箱水果。由于一箱水果的重量很大,所以送货员每次只能携带一箱水果。

你可以把这个城市看成一个N行M列的棋盘,每个格子要么是空地,要么是住宅,要么是水果店。如果这个格子是一个空地,那就用0..9来表示这个空地的高度;如果是住宅,那么就用$来表示,如果是水果店,那么就用X来表示。从一个格子进入另一个格子,当且仅当两个格子相邻,也就是说共享一条边。

如果两个格子中有一个是住宅或水果店,那么需要花费2分钟的时间。(没理解懂)

如果两个格子都是空地,那么就按高度来讨论时间。如果两个空地的高度相同,则花费1分钟的时间;如果两者的高度差1,则花费3分钟的时间;如果两者的高度超过1,那么不能互相进入。

现在,水果店的老板想知道,如果让整个城市的住宅都收到自己的水果,最短需要多少时间呢?如果永远无法送到,请输出-1。

爆搜

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1005][1005],c[1005][1005],n,m,k=0,dx[5]={0,1,-1,0,0},dy[5]={0,0,0,1,-1},f[1000050],ans=0,sum=0;
bool vis[1005][1005];void dfs(int x,int y,int time)
{if (c[x][y]<=time) return;else c[x][y]=time;for (int i=1;i<=4;i++){if (vis[x+dx[i]][y+dy[i]]==true) continue;if (a[x+dx[i]][y+dy[i]]==-1) continue;if (a[x][y]==100) vis[x][y]=true,dfs(x+dx[i],y+dy[i],time+2),vis[x][y]=false;else{if (a[x+dx[i]][y+dy[i]]==100) vis[x][y]=true,dfs(x+dx[i],y+dy[i],time+2),vis[x][y]=false;else{if (a[x][y]==99) vis[x][y]=true,dfs(x+dx[i],y+dy[i],time+2),vis[x][y]=false;else{if (abs(a[x+dx[i]][y+dy[i]]-a[x][y])<=1){if (abs(a[x+dx[i]][y+dy[i]]-a[x][y])==1) vis[x][y]=true,dfs(x+dx[i],y+dy[i],time+3),vis[x][y]=false;else vis[x][y]=true,dfs(x+dx[i],y+dy[i],time+1),vis[x][y]=false;}}}}}
}
void df(int x,int z)
{ans=min(ans,max(z+f[k-1],sum-z+f[k]));ans=min(ans,max(z+f[k],sum-z+f[k-1]));for (int i=x+1;i<=k-2;i++)df(i,z+f[i]);
}
int main()
{scanf("%d %d\n",&n,&m);memset(a,-1,sizeof(a));int x1,y1;for (int i=1;i<=n;i++){char ch;for (int j=1;j<=m;j++){scanf(" %c",&ch);if (ch>='0'&&ch<='9') a[i][j]=ch-'0';if (ch=='$') a[i][j]=100;if (ch=='X') a[i][j]=99,x1=i,y1=j;}ch=getchar();}memset(c,127,sizeof(c));memset(vis,false,sizeof(vis));dfs(x1,y1,0);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++)if (a[i][j]==100){if (c[i][j]==2139062143){printf("-1\n");return 0;}f[++k]=c[i][j];}sort(f+1,f+1+k);if (k==1) printf("%d\n",f[1]);else if (k==2) printf("%d\n",f[1]+f[2]);else{sum=0;for (int i=1;i<=k-2;i++)f[i]=f[i]*2,sum+=f[i];ans=2147483647;df(0,0);printf("%d\n",ans);}
}

转载于:https://www.cnblogs.com/nibabadeboke/p/11517049.html

GALAXY OJ NOIP2019联合测试2-普及组相关推荐

  1. 2019.09.21 多校联合训练(普及组)

    不要以为普及组的题就很和谐.. 勇者斗恶龙 一.题目 现在有一条 n 头龙,生命值为 h,勇士想要打败这条作恶多端的龙. 勇士攻击第 i 个头会造成 min(h,atki) 点伤害,即龙的生命值减少 ...

  2. NOIP2013普及组 T2 表达式求值

    OJ地址:洛谷P1981 CODEVS 3292 正常写法是用栈 1 #include<iostream> 2 #include<algorithm> 3 #include&l ...

  3. 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和

    [题目链接] ybt 1173:阶乘和 注:一本通上这题,应该把n≤50n\le50n≤50当做n≤100n\le100n≤100来看 OpenJudge NOI 1.6 15:阶乘和 洛谷 P100 ...

  4. 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数

    [题目链接] ybt 1309:[例1.6]回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 [题目考点] 1.高精度 ...

  5. 信息学奥赛一本通 1911:【00NOIP普及组】税收与补贴问题 | 洛谷 P1023 [NOIP2000 普及组] 税收与补贴问题

    [题目链接] ybt 1911:[00NOIP普及组]税收与补贴问题 洛谷 P1023 [NOIP2000 普及组] 税收与补贴问题 [题目考点] 1. 枚举 2. 数学 3. 二分查找 [解题思路] ...

  6. 信息学奥赛一本通 1962:【13NOIP普及组】表达式求值 | 洛谷 P1981 [NOIP2013 普及组] 表达式求值

    [题目链接] ybt 1962:[13NOIP普及组]表达式求值 洛谷 P1981 [NOIP2013 普及组] 表达式求值 [题目考点] 栈 中缀表达式转后缀表达式,后缀表达式求值 中缀表达式求值 ...

  7. 近年NOIP普及组复赛题目的简单讲解

    NOIP2015普及组复赛 整套题都出得不错,难度适中,层次分明 建议同学们在做题的时候还是先在草稿纸上分析,把关键算法的伪代码写出来,然后设计数据进行静态查错,没有问题后再到电脑上敲出代码.实际效率 ...

  8. CSP-J复赛复习题目(NOIP普及组2000-2011)

    CSP-J复赛复习题目(NOIP普及组2000-2011) NOIP普及组复赛(某个不存在的比赛)2000-2011年的题面和样例 可以用来复习CSP-J 建议去OJ上查看并提交 祝大家CSP RP+ ...

  9. 2012-2018普及组第一题题解

    noip2018 标题统计 [题目描述] 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字符数时,空格和换行符不计 ...

最新文章

  1. linux服务器监听服务sid_linux下重启oracle服务:监听器和实例
  2. C语言之从内存角度理解不同类型的变量
  3. linux php 依赖,在php5-fpm-alpine docker容器中安装php-gd依赖于alpine linux
  4. 前端构建工具gulp入门教程
  5. java数据库防火墙,数据库centos7防火墙导致java程序访问mongodb3.0.1时报错的问题分析...
  6. pyinotify结合ftplib自动上传新建的文件
  7. python 学习资源推荐
  8. Catalyst 5.8: the Perl MVC Framework
  9. Hyper-V损坏数据恢复报告
  10. Android 中shape的使用(圆角矩形)
  11. Android中TextView中文字体粗体的设置方法
  12. Qt On Android 一键加QQ群
  13. cmd查看自己的CPU参数
  14. python fabs和abs_python – abs()vs fabs()速度差异和fabs()
  15. Linux项目实战——五子棋(单机人人对战版)
  16. neo4j java 模糊搜索,Neo4j 使用cypher语言进行查询
  17. UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 的解决方法
  18. jQuery中的end()方法使用介绍
  19. CDM是什么,和CDP的区别?
  20. 5. 文件上传下载 与 db数据库

热门文章

  1. 腾讯是如何做Unity手游性能优化的
  2. Android 系统语言切换监听和设置
  3. 第一个hollo world程序
  4. go结合php,php2go
  5. 关于手机号码四重号,四连号的校验
  6. 靠营销出圈的拉面说,会是下一个黄太吉吗?
  7. 91 q.v4p.co index.php,静觅丨崔庆才的个人站点
  8. 【Json】json.dumps和 json.loads 区别及ensure_ascii中文显示
  9. ajax中英文切换,vue-i18n中英切换插件使用
  10. POI操作ppt图表完整示例演示