题目集入口 - 补题 (pintia.cn)

目录

1.爱的素数(分析题)

2.规划一(最小生成树)

3.物资转移(贪心)

4.前四位(高精度)

5.上流的聚餐(并查集)

6.庄生的笔(分析题)


1.爱的素数

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int vis(ll n) {int c = 1;for (int i = 2; i * i <= n; i++) {if (n % i == 0)c = 0;}if (n <= 1)return 0;if (c == 0)return 0;elsereturn 1;
}int su(ll l, ll r) {int sum = r - l + 1, k = 0;for (ll i = l; i <= r; i++) {if (vis(i))k++;}if (k * 1.0 / sum >= 0.5)return 1;elsereturn 0;
}int main() {ll l, r;while (cin >> l >> r) {if (r - l + 1 >= 20) {//素数很少,由推理可知达到所给区间超过一定范围,就不能构成爱的素数//不能是10的原因:可能所给区间是(2,12),其中有2,3,5,7,9,11共6个素数puts("no");} else {if (su(l, r))puts("yes");elseputs("no");}}return 0;
}

错因:没有仔细分析题意,多思考一会,而是直接按照题意找素数,造成了超时;

反思:遇到容易超时(或数据范围给的很大的题目),先仔细分析题意,看看有没有其他的突破口(找规律,或者题目中某些关键字眼)

2.规划⭐⭐⭐

#include <bits/stdc++.h>
using namespace std;
int n, m;
const int N = 1e5 + 100;
typedef long long ll;struct lu {int u, v, w;
} k[N];
int f[N];void chushihua() {for (int i = 0; i <= n; i++) {f[i] = i;}
}ll find(ll x) {return x == f[x] ? x : f[x] = find(f[x]);
}bool cmp(lu a, lu b) {return a.w < b.w ;
}int main() {ll sum = 0,ans=0;cin >> n >> m;chushihua();for (int i = 1; i <= m; i++) {cin >> k[i].u >> k[i].v >> k[i].w;}sort(k + 1, k + m + 1, cmp);//排序,找费用最小的边相连for (int i = 1; i <= m; i++) {ll a = find(k[i].u);ll b = find(k[i].v);if(a!=b){ans++;f[a] = b;sum += k[i].w;}}if (ans < n-1)//由最小生成树的性质知:由n-1条边相连,所以若小于n-1条边,一定有没有联通的村庄puts("NO");elsecout << sum << endl;return 0;
}

最小生成树笔记:(6条消息) 最小生成树详解(模板 + 例题)_潘小蓝的博客-CSDN博客_最小生成树例题详解

3.物资转移

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;//开long long !!!
priority_queue<ll,vector<ll>,greater<ll> >q;
int main(){ll n;while(cin>>n){ll sum=0;for(int i=0;i<n;i++){ll a;cin>>a;q.push(a);} while(!q.empty()){ll len=q.size();if(len<=1)break;ll a=q.top();q.pop();ll b=q.top();q.pop();ll c=min(a,b);sum+=c;q.push(a+b);}while(!q.empty()){ll m=q.top();sum+=m; q.pop();//k++;} //cout<<k<<endl;cout<<sum<<endl;
}return 0;
} 

错因:没开long long (emmm........) 本来是做过类似的题,以为很容易就可以过,万万没想到还是卡在了long long,(即使是优先队列里的数据类型也逃不过long long)

总结:下次能开long long 的,坚决不写int了(还有,只要是实在找不到逻辑上的错误,过不了多半了long long)

4.前四位⭐⭐⭐

/*#include <bits/stdc++.h>
using namespace std;int main() {int n;cin >> n;double ans = 1;for (int i = 0; i < n; i++) {ans *= n;while (ans >= 10000)ans /= 10;}cout << int(ans);return 0;
}*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;int main() {int n;cin >> n;double res = n * log10(n) - (int)(n * log10(n));int ans = pow(10, res) * 1000;cout << ans << endl;return 0;
}

5.上流的聚餐⭐⭐⭐

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 100;
typedef long long ll;
int n;struct node {ll a, b, c;
} m[N];
ll f[N];void chushihua() {for (int i = 1; i <= n; i++)f[i] = i;
}ll find(ll x) {return x == f[x] ? x : find(f[x]);
}void lianxi(ll a, ll b) {//建立朋友间的联系ll x = find(a);ll y = find(b);if (x != y)f[x] = y;
}
vector<int>s[N];int main() {ll ans = -0x7FFFFFFF;cin >> n;chushihua();for (int i = 1; i <= n; i++) {cin >> m[i].a >> m[i].b >> m[i].c;lianxi(i, m[i].a);}for (int i = 1; i <= n; i++) {s[find(i)].push_back(m[i].b);//将某个队伍所有的礼物都放到该队伍中最后一个被联系的人的包里s[find(i)].push_back(m[i].c);}for (auto i : s) {//遍历二维动态数组的第一维(遍历所有队伍)ll mi, ma;vector<int>v = i;//新建一个动态数组表示原二维数组的第二维(遍历每个队伍里的礼物)sort(v.begin(), v.end());ll cnt = 0;for (auto it : v) {cnt++;if (cnt == 1)mi = it;//该队伍里的礼物最小值if (cnt == v.size())ma = it;//该队伍里的礼物最大值}ans = max(ans, ma - mi);//找所有队伍里差值最大的那个}cout << ans << endl;
}

6.庄生的笔

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3;
map<string, int>mp;int main() {ll n, m, cnt = 0;cin >> n >> m;for (int i = 0; i < n; i++) {string x1, y1, x2, y2, s1, s2;cin >> x1 >> y1 >> x2 >> y2;s1 = x1 + y1, s2 = x2 + y2;mp[s1]++;mp[s2]++;if (mp[s1] > 1 || mp[s2] > 1)continue;elsecnt++;}if (cnt <= m)puts("yes");else {puts("no");cout << cnt - m << endl;}return 0;
}

分析:比赛的时候被题面吓到了,还以为又是个图或是树的题,仔细分析发现某个点出现超过一次就一定有连边(即可以一笔画画完),这样只要把坐标存起来,cnt计数只出现一次的坐标 即可

反思:这次比赛出现了很多问题,比如很多改写出来的题目没能写出来,就连第一个简单的签到题也因为把两个样例输入看成输入和输出贰卡了进一个小时,再如素数和庄生的笔的题,仔细分析后也很容易,但是因为自己不仔细思考而错过。

总结:拿到一个题后不要着急先仔细从头到尾审一遍题,然后先考虑不用任何算法能否写出,最后再去考虑是什么算法,不要着急看时间,相信自己可以的,不要慌张,认真思考,还有记得开long long (是所有的变量!!!)


绍兴文理学院元培学院第十五届大学生程序设计竞赛相关推荐

  1. 2022.3.12 绍兴文理学院元培学院第十五届大学生程序设计竞赛

    绍兴文理学院元培学院第十五届大学生程序设计竞赛 A 阳光明媚的数学题 B 爱的素数 C 庄生的笔 D 上流的聚餐 E 规划(一) F 规划(二) G 运动的球球 H 物资转移 I 小杨环 J 前四位 ...

  2. 浙江省第十五届大学生程序设计竞赛 记录

    其实还是非常激动,当初浙大校赛只有三题,然后后来通过 tryout 幸运得以参加省赛 其实当初天梯赛没有被选上,就以为大概是没有希望打省赛了.. 虽然说不是所有的努力都会得到应有的回报,但是没有努力的 ...

  3. 怀化学院计算机科学张显老师,怀化学院第十二届大学生计算机程序设计竞赛暨2019年湖南省第十五届大学生程序设计大赛选拔赛完美落幕...

    原标题:怀化学院第十二届大学生计算机程序设计竞赛暨2019年湖南省第十五届大学生程序设计大赛选拔赛完美落幕 2019年6月9日,由我校教务处主办,计算机科学与工程学院.怀化学院ACM协会承办的怀化学院 ...

  4. pta 绍兴文理学院元培学院2022/3/11 补题

    比赛对了6/10,这个比赛相对简单吧. 补题 小杨在心灵走廊中闯入603号房间时,一张巨大的星图展现在他的面前,脚边也多了m支笔.星图上每颗星都代表着一个交点,每两颗星之间可能有线相连,每条线除了端点 ...

  5. 免费机票【SPFA】【南华大学第十五届ACM程序设计竞赛】

    题目链接 题目描述 某华大学小飞中奖了!!!奖品是一张免费飞机票,唯一遗憾的是,这张飞机票有限定区间,需要从k个区间中选择其一.小飞打算高高兴兴的出去玩啦,但是,从s地出发,去往e地,可能没有直达的飞 ...

  6. 南华大学第十五届ACM程序设计竞赛(重现赛) E 免费机票

    链接:https://ac.nowcoder.com/acm/contest/699/E 来源:牛客网 题目描述 某华大学小飞中奖了!!!奖品是一张免费飞机票,唯一遗憾的是,这张飞机票有限定区间,需要 ...

  7. 南华大学第十五届ACM程序设计竞赛(重现赛)E 免费机票(单边最短路)

    题目链接 题目描述 某华大学小飞中奖了!!!奖品是一张免费飞机票,唯一遗憾的是,这张飞机票有限定区间,需要从k个区间中选择其一.小飞打算高高兴兴的出去玩啦,但是,从s地出发,去往e地,可能没有直达的飞 ...

  8. 第十五届智能车竞赛芯片选型浅析

    ➤ 01第十五届竞赛 众所周知,第十五届智能车竞赛虽然来晚了几个月,但依然热闹非凡,芯片厂商不再由NXP独家提供,呈现了卓老师所说的三足鼎立的局面,可以选择由NXP.Infineon.STC三家公司提 ...

  9. 第十七届全国大学生智能汽车竞赛安徽赛区 暨安徽省第十五届大学生智能汽车竞赛 闭幕式致辞

    第十七届全国大学生智能汽车竞赛安徽赛区 暨安徽省第十五届大学生智能汽车竞赛 闭幕式致辞   尊敬的张尔桂处长.朱永国副处长,尊敬的杨辉军院长,   亲爱的老师们.同学们.朋友们:   下午好!   第 ...

最新文章

  1. 阿里JAVA面试题剖析:一般实现分布式锁都有哪些方式?使用 Redis 如何设计分布式锁?...
  2. java 可控异常_java异常处理,重新认识java异常,java7异常处理的新特性!
  3. oracle数据库是db还是dbnms,Oracle数据库中各种类型的文件损坏与修复过程详解(2)...
  4. 几何着色器与细分(镶嵌)着色器
  5. 吴恩达 coursera ML 第八课总结+作业答案
  6. 点在多边形内外的判断【计算几何】
  7. dbforge schema compare for mysql_DbForge Schema Compare for MySQL入门教程:生成比较报告
  8. redis hash
  9. json 插入数据_Power BI数据回写SQL Server(2)——存储过程一步到位
  10. 关于json返回日期格式化的解决方案
  11. 【PYTHON笔记】:文件打开和关闭
  12. android 读写txt文件,Android:将文本写入txt
  13. php自动生成word目录,word怎么自动生成目录
  14. 用python的matplotlib和numpy库绘制股票K线均线和成交量的整合效果(含量化验证交易策略代码)
  15. 关于四阶魔方中心块还原
  16. 荣耀4a刷android 6,华为荣耀4a刷机教程_华为荣耀4a强刷官方系统包
  17. php去掉二维数组中某key的值
  18. 实验三 XSS和SQL注入
  19. tranmac不能识别_怎么用transmac制作mac安装盘|transmac制作苹果系统启动U盘方法
  20. ldpc译码讲解_LDPC码译码方法和编码方法与流程

热门文章

  1. linux运行国服英雄联盟排行榜,LOL国服排位十大高手排名:问谁是S2路人王
  2. python 正则表达式匹配
  3. 爸爸给4岁女儿的遗书 10年后女儿回了信(感人)
  4. 11月编程语言排行冠军揭晓,稳
  5. 临床试验数据的标准化之路,究竟还有多远?
  6. javaScript函数的定义和arguments,result关键字
  7. 八、C语言的基本结构—选择结构
  8. SQL日期、转换、通用函数
  9. 帝国CMS教程:ECMS(帝国CMS)搜索伪静态
  10. 准备VB或C#开发环境(Visual Studio)