直接看题

【题目链接】: http://codeforces.com/group/NVaJtLaLjS/contest/238204
A. Taming the Herd(签到题)
题意: 有一张表,记录奶牛出走的时间,若是当天奶牛出走,则当天记录为0,否则记录最近奶牛出走的时间,如奶牛是在三天前出走的,则当天记录为3,现在这张表出现破损,破损的地方记录为-1,问最多与最少奶牛出走的天数,若这张表记录不符合规则,则输出-1,且已知第一天奶牛必然出走
思路: 这道题需要注意的是题目所给的表不一定是正确的,如 样例-1 2 -1 -1 4 则输出-1,因为 第二天只可能是-1, 1

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int a[105],b[105];
int main()
{int n;cin>>n;int num=0,cnt=0,flag=0;memset(b,-1,sizeof b);for(int i=1;i<=n;i++)cin>>a[i];a[1]=0;for(int i=1;i<=n;i++){if(a[i]!=-1){if(i-a[i]>0){if(a[i-a[i]]==-1||a[i-a[i]]==0)a[i-a[i]]=0;else {flag=1;}}else flag=1;}}if(flag){cout<<"-1"<<endl;return 0;}for(int i=n;i>=1;){if(a[i]==0){cnt++;i--;continue;}else if(a[i]!=-1){i-=a[i];continue;}i--;num++;}cout<<cnt<<" "<<cnt+num<<endl;return 0;
}

B. Hoofball(模拟)
题意: 有一群奶牛站成一列相互传球,传球规则是传给距离比较近的奶牛,若是左右两侧距离一样,则传给左侧的奶牛,问至少需要多少个球
思路: 这道有几种做法,有的是构建一个图,算出成环的个数,有的是模拟,有的是dp,都要开一个nxt[ ]存下每个球是传递目标。有一种比较好理解的就是从第一只奶牛开始传球,传到球就进行标记,从1-n遍历没有被标记的奶牛,每次做的标记不一样,如第一个球标记为1,第二个球标记为2,可以相互覆盖,最后统计还没有覆盖的标记种类,就是需要多少个球

#include<bits/stdc++.h>
using namespace std;
const int N=1005;
int n,a[N],vis[N],ans[N];int cnt=1;
void dfs(int pos)
{if(vis[pos]==cnt)return;vis[pos]=cnt;if(pos==1)dfs(2);else if(pos==n)dfs(n-1);else if(pos!=1&&pos!=n){if(a[pos]-a[pos-1]<=a[pos+1]-a[pos])dfs(pos-1);else dfs(pos+1);}
}
int main()
{cin>>n;for(int i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);for(int i=1;i<=n;i++){if(!vis[i])dfs(i);cnt++;}cnt=0;for(int i=1;i<=n;i++)ans[vis[i]]=1;for(int i=1;i<=n;i++)if(ans[i])cnt++;cout<<cnt;
}

C. Rest Stops(贪心)
题意: 给出A和B两人每米需要走多少秒的速度,其中保证A的速度比B快,且需要A在整个路程一直在B前面,而在这段分布了N个草场,若待在草场时,每秒可以收获c单位草,问A走完这段路能收获多少单位草
思路: 每次取未走完路程中每秒可收获草的单位最大的草场

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
struct node
{int dis,c;
}a[100005];
bool cmp(node a,node b)
{if(a.c==b.c)return a.dis>b.dis;return a.c>b.c;
}
int main()
{ll l,n,v1,v2,maxx=-1,id;cin>>l>>n>>v1>>v2;for(int i=1;i<=n;i++){cin>>a[i].dis>>a[i].c;}ll ans=0;sort(a+1,a+1+n,cmp);//for(int i=1;i<=n;i++)// cout<<a[i].c<<" "<<a[i].dis<<endl;id=a[1].dis;ans+=(v1-v2)*id*a[1].c;for(int i=2;i<=n;i++){if(a[i].dis<id)continue;ans+=(v1-v2)*(a[i].dis-id)*a[i].c;id=a[i].dis;}cout<<ans<<endl;return 0;
}

D. Directory Traversal 连题意都看不懂……,更不会做

E. Taming the Herd (dp)
题意: 现在还是给出一张表,记录规则与A题一样(保证奶牛第一天肯定出走),但是现在这张表遭到修改,问奶牛1-n次出走的最小修改数
思路: 参照大佬的思路:
dp[ i ][ j ][ k ]表示已经到了第i天,逃了j次,今天计数器记的数为k的最小值。那么两种转移:
1、当k=0时,dp[ i ][ j ][ 0 ]=min ( dp[i−1][j−1][p] )+(a[i] != 0),

2、当k!=0时,dp[ i ][ j ][ k ]=dp[i−1][ j ][k−1]+(a[i]!=k)

在第一条方程里,需要枚举p。所以复杂度是O(n^4)。 然后我们可以用一个g维护一下min(dp[i−1][j−1][p]),所以变成O(n^3)。

#include<bits/stdc++.h>
using namespace std;
const int N=1e2+5;
int dp[N][N][N],g[N][N],a[N];
int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];memset(dp,0x3f,sizeof dp);memset(g,0x3f,sizeof g);dp[0][0][0]=0;g[0][0]=0;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){for(int k=0;k<i;k++){if(!k){dp[i][j][k]=g[i-1][j-1]+(a[i]!=0);g[i][j]=min(g[i][j],dp[i][j][k]);}else {dp[i][j][k]=dp[i-1][j][k-1]+(a[i]!=k);g[i][j]=min(g[i][j],dp[i][j][k]);}}}}for(int i=1;i<=n;i++)cout<<g[n][i]<<endl;return 0;
}

F. Teleportation(签到题)
题意:
思路:

G. Snow Boots(dp)
题意: 有一条路上面有N块瓷砖,每块瓷砖积雪深度不一,保证第一块瓷砖与最后一块瓷砖没有积雪,现在A光着脚站在第一块瓷砖,要走到第N块瓷砖,身上从有n双鞋子,按1-n排序,每次只能取最前面的一双鞋,每双鞋有两个属性,能承受最大的积雪深度,还有一次能跨越几块瓷砖,想要换新鞋子必须扔掉旧的或者直接扔掉最上面新的鞋
思路: 我们枚举当前用第i双靴子走路,用dp[j]示前i-1双靴子是否能走到第j块地砖,若dp[j]=true且deep[i]>=dis[j],说明第i双靴子可以在当前砖块被换上。那么我们就可以用第i双靴子去更新从第j块之后不超过step[i]块的砖块是否能到达。
有个大佬说一般n=250的数据 时间复杂度都是O(n^3)来着,反正这道题确实是。

#include<bits/stdc++.h>
using namespace std;
int dp[255],dis[255],deep[255],step[255];
int main()
{int n,m,ans;cin>>n>>m;for(int i=1;i<=n;i++)cin>>dis[i];for(int i=1;i<=m;i++){cin>>deep[i]>>step[i];}dp[1]=1;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(dp[j]&&dis[j]<=deep[i]){for(int k=j;k<=min(n,j+step[i]);k++){if(dis[k]<=deep[i])dp[k]=1;}}}if(dp[n]){ans=i;break;}}cout<<ans-1<<endl;return 0;
}

GDUT 寒假排位赛二相关推荐

  1. GDUT 寒假排位赛三

    [题目链接:]http://codeforces.com/group/NVaJtLaLjS/contest/238202 感想 emmmm,这套题有个特点,代码量小的考思维,而那些一眼看过去思路就有了 ...

  2. [转载]高一语文必修一寒假作业二

    [转载]高一语文必修一寒假作业二 2012年01月15日 高一语文必修一寒假作业二 一.(每小题3分,共15分) 1.下列加黑字读音全部正确的一项是() A.岑(cén)寂 勾(gōu)当 蕴藉(jí ...

  3. 2019寒假作业二:PTA7-1币值转换

    7-1 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...

  4. 2017 ZSTU寒假排位赛 #8

    题目链接:https://vjudge.net/contest/149845#overview. A题,水题. B题,给出 p个 第一个人的区间 和 q个第二个人的区间,问[l,r]中有多少个整数满足 ...

  5. 大数据:大二上期期末感悟及总结

    学期期末总结 一.期末感悟 1.个人感悟 2.知识积累 3.谦卑心理 4.利用好碎片时间 5.为学历添砖加瓦 6.寒假计划 二.比赛经历及所获荣誉 1.全国高校计算机挑战赛office赛项 2.蓝桥杯 ...

  6. 道周中学2012年高三地理寒假作业答案

    道周中学2012年高三地理寒假作业答案 2012年01月16日 寒假作业二答案已更新!!!!!! 信不信抄不抄随你便咯~~~ 作业一 选择题 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  7. 计算机专业寒假作业,应用本科计算机网络寒假作业2

    计算机网络寒假作业二 一.选择题 16.开放式系统互联(OSI)参考模型的最低层是() A 网络层 B 应用层 C 物理层 D 会话层 17.中继器工作在OSI的() A 物理层 B 链路层 C 运输 ...

  8. 我的大学生涯(大二腾讯校招实习生)

    文章目录 前言 大一上学期 大一寒假 大一下学期 大一暑假 大二上学期 大二寒假 3月 5月 5.21 6月 7月 8月 前言 本人现在是大二学生,这个学期通过腾讯校招成为腾讯IEG-魔方-魔术师的游 ...

  9. Codeforces Round #341 (Div. 2)

    在家都变的懒惰了,好久没写题解了,补补CF 模拟 A - Wet Shark and Odd and Even #include <bits/stdc++.h>typedef long l ...

最新文章

  1. linux文件IO与内存映射:分散/聚集IO技术(scatter-gather)
  2. leftjoin及多个leftjoin执行顺序
  3. logstash创建不了索引_「技术选型」Elasticsearch vs. Solr-选择您的开源搜索引擎
  4. 大学计算机基础课程报告python-Python程序设计习题解析(大学计算机基础教育规划教材)...
  5. micropython esp8266+ssd1306(OLED) 显示中文(示例)
  6. lambda表达式的使用 || Lambda Express 口诀: 拷贝小括号,写死右箭头,落地大括号||default || @FunctionalInterface||静态方法实现
  7. 1771: 书架整理(dp)
  8. 超长的十六进制数转换为八进制
  9. Linux系统编程——线程(1)
  10. JVM调优(二)垃圾回收算法
  11. ios学习8_KVC和字典转模型
  12. java怎样将日期本土化_Java中的日期操作
  13. 输入日期java_java怎么格式化输入日期
  14. ROS采坑日记(3)----在ROS下 编译ORB_SLAM2时遇到问题:[rosbuild] rospack found package ORB_SLAM2 at ........
  15. 趣学Python-教孩子学编程--第三章
  16. 别让手机偷走你的大半生
  17. 计算机ppt密码是什么,PPT怎么设置密码 PPT密码设置教程-电脑教程
  18. 【Task02】Pandas之基础
  19. Photoshop设计精讲精练笔记 (三)
  20. TDengine 入坑

热门文章

  1. android图片晃动动画,剖析Android动画(图片闪烁、左右摇摆、上下晃动等效果)
  2. 正则表达式全部符号解释及示例
  3. 解决win10电源设置了从不休眠,但是没有生效
  4. 什么是CSS+DIV
  5. Sqlite数据库加密方法
  6. 【调剂】甘肃农业大学2021年硕士研究生招生调剂公告
  7. 2018年度总结—一路向前
  8. 小程序下拉刷新ios回弹问题-onPullDownRefresh
  9. 两个坚持是什么_夫妻之间靠什么维持感情,一个过来男人告诉你
  10. deepfake安装