1 7-1 Lily

题目


题目解析

这一题并不难,算是基本的贪心问题(能见缝插针就行 )。

代码

#include <bits/stdc++.h>
using namespace std;int n;
string s;int main()
{cin>>n>>s;for(int i=0;i<s.length();++i){if(i==0&&s[i]=='.'&&s[i+1]=='.')cout<<'C';else if(i!=0&&s[i-1]=='.'&&s[i]=='.'&&s[i+1]=='.'&&i!=s.length()-1)cout<<'C';else if(i==s.length()-1&&s[i-1]=='.'&&s[i]=='.')cout<<'C';elsecout<<s[i];}return 0;
}

2 7-2 a * b

题目

题目解析

这一题是高精度乘法,十进制数的乘法和十六进制数的乘法类似,不过是由大于9进位变成了大于15进位。同时还有大于9的数的输出处理。

代码

#include <bits/stdc++.h>
using namespace std;char at[1005],bt[1005];
int a[1005],b[1005],c[2010];//将字符转化成数字
int shiji(char c)
{if(isdigit(c))return c-'0';elsereturn c-'A'+10;
}int main()
{cin>>at>>bt;int lena=strlen(at);for(int i=0;i<lena;++i)a[i+1]=shiji(at[lena-i-1]);int lenb=strlen(bt);for(int i=0;i<lenb;++i)b[i+1]=shiji(bt[lenb-i-1]);int yu=0;for(int i=1;i<=lena;++i){yu=0;for(int j=1;j<=lenb;++j){c[i+j-1]+=a[i]*b[j]+yu;yu=c[i+j-1]/16;c[i+j-1]%=16;}c[i+lenb]=yu;}int lenc=lena+lenb;while(c[lenc]==0&&lenc>1)lenc--;for(int i=lenc;i>=1;--i){if(c[i]>=0&&c[i]<=9)cout<<c[i];elsecout<<(char)(c[i]-10+'A');  //大于9的数字将其转化成十六进制数的字母}return 0;
}

3 7-3 山头狙击战

题目


题目解析

本题考二分答案,需要注意两点:1、初始枪里有一颗子弹,无需换弹时间,便可杀死第一个敌人;2、如果敌人在自己的射程范围外需要等待敌人进入射程才可射击。

代码

#include <bits/stdc++.h>
using namespace std;const int N=1e6+5;
int n,m,ans,dis[N];bool check(int x)
{//t表示时间int t=max(dis[1]-m,0);  //如果第一个敌人在范围外要等待其进入范围for(int i=2;i<=n;++i){t+=x;  //加上换弹时间//初始距离减去时间便是此时敌人和你的距离if(dis[i]-t>m)  //如果在射程外等待t+=dis[i]-t-m;if(dis[i]-t<0) //敌人和你的距离小于0,所给的换弹时间太长了return false;}return true;
}int main()
{cin>>n>>m;for(int i=1;i<=n;++i)cin>>dis[i];sort(dis+1,dis+n+1);  //优先射击最近的敌人int L=1;int R=dis[n];while(L<=R){int M=(L+R)/2;if(check(M)){ans=M;L=M+1;}elseR=M-1;}cout<<ans<<endl;return 0;
}

4 7-4 Reversing Linked List

题目


题目解析

一个关于链表翻转的题目,难点在于英文读懂题目,以及翻转过程中思路的清晰,本题数据中还有孤立节点的出现,所以我们还需统计真实连接的节点数目。本题作者用单向链表实现,如果用双向链表实现会更简单。

代码

#include <bits/stdc++.h>
using namespace std;const int MAX=1e5+5;
struct node
{int data,next_adress;
}nd[MAX];
int st_adress,N,K,adress,cnt;int main()
{cin>>st_adress>>N>>K;for(int i=1;i<=N;++i){cin>>adress;cin>>nd[adress].data>>nd[adress].next_adress;}int a=st_adress;while(a!=-1)  //统计真实节点数目{cnt++;a=nd[a].next_adress;}a=st_adress;for(int i=1;i<=cnt/K;++i) //实现链表翻转过程{int pre=a;int cur=nd[pre].next_adress;int tail,tmp;int sum=1;while(sum<K){tmp=nd[cur].next_adress;nd[cur].next_adress=pre;pre=cur;cur=tmp;sum++;}nd[a].next_adress=cur;if(i==1)st_adress=pre;elsend[tail].next_adress=pre;tail=a;a=cur;}a=st_adress;while(a!=-1){if(nd[a].next_adress!=-1)printf("%05d %d %05d\n",a,nd[a].data,nd[a].next_adress);elseprintf("%05d %d %d\n",a,nd[a].data,nd[a].next_adress);a=nd[a].next_adress;}return 0;
}

5 7-5 一元三次方程

题目



题目解析

二分答案,注意一点便是求导求出单调区间。

代码

#include <bits/stdc++.h>
using namespace std;const double eps = 1e-7;
int T;
double a, b, c, d, p, q;double jisuan(double x)
{return a * x * x * x + b * x * x  +c * x + d;
}void func(double L, double R)
{while (R - L > eps){double M = (L + R) / 2;if (jisuan(L) * jisuan(M) <= 0)R = M;elseL = M;if (jisuan(M) * jisuan(R) <= 0)L = M;elseR = M;}printf("%.6f ", L);
}int main()
{cin >> T;while (T--){cin >> a >> b >> c >> d >> p >> q;double t1 = min((-2 * b + sqrt(4 * b * b - 12 * a * c)) / (6 * a), (-2 * b - sqrt(4 * b * b - 12 * a * c)) / (6 * a));double t2 = max((-2 * b + sqrt(4 * b * b - 12 * a * c)) / (6 * a), (-2 * b - sqrt(4 * b * b - 12 * a * c)) / (6 * a));func(p, t1);func(t1, t2);func(t2, q);}return 0;
}

东大acm预备队第一次双周赛相关推荐

  1. 东北大学秦皇岛分校acm俱乐部第一次双周赛

    7-1 Lily 百合花(Lily)是一种美丽的花.她通常一年只开一次花,所以如果你看到百合花盛开,它会非常珍贵.然而,她对猫有剧毒,所以你必须注意让好奇的猫远离可爱的百合花. 你有n个网格的土壤土地 ...

  2. acm第二次双周赛题单

    1.输出全排列 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10). 输出格式: 输 ...

  3. NEUQ2022第一次双周赛题解

    7-1 Lily 百合花(Lily)是一种美丽的花.她通常一年只开一次花,所以如果你看到百合花盛开,它会非常珍贵.然而,她对猫有剧毒,所以你必须注意让好奇的猫远离可爱的百合花. 你有n个网格的土壤土地 ...

  4. LeetCode 第 30 场双周赛(477/2545,前18.7%,第2次全部通过)

    文章目录 1. 比赛结果 2. 题目 1. LeetCode 5177. 转变日期格式 easy 2. LeetCode 5445. 子数组和排序后的区间和 medium 3. LeetCode 54 ...

  5. LeetCode 第 58 场力扣夜喵双周赛(动态规划、马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)

    第 58 场力扣夜喵双周赛 两道600多 5193. 删除字符使字符串变好 题目描述 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 ...

  6. C#实现力扣双周赛算法题:以组为单位订音乐会的门票订购

    目录: 前言: 一,算法题目描述 二,基本概念理解: 三,例子引入分析 四,代码解释 (1)安排座位函数 (2)查询函数 (2)求出1到RPS内的最小下标 (3)gather函数 (4)scatter ...

  7. 以赛促练-力扣第85场双周赛以及第307场周赛

    文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...

  8. LeetCode 第 59 场力扣夜喵双周赛(最短路径数+迪杰斯特拉、动态规划+最长公共前缀问题) / 第255场周赛(二进制转换,分组背包,子集还原数组(脑筋急转弯))

    第 59 场力扣夜喵双周赛 两道400多五百,后两道都写出代码来了,但是都有问题,哭辽- 还有刚开始第一道测试好慢,搞心态了 5834. 使用特殊打字机键入单词的最少时间 有一个特殊打字机,它由一个 ...

  9. Leetcode周赛复盘——第 71 场力扣双周赛与第 279 场力扣周赛

    双周赛: 5984. 拆分数位后四位数字的最小和 class Solution:def minimumSum(self, num: int) -> int:a, b, c, d = sorted ...

最新文章

  1. RESTful API 设计指南(转)
  2. list类型的应用场景 —— Redis实战经验
  3. linux中怎么安装ypak软件包,Linux 124课程 13、安装和升级软件包
  4. yaas target folder generated and source folder generated
  5. WCF分布式开发常见错误(25):The certificate 'CN=WCFHTTPS' must have a private key
  6. [渝粤教育] 郑州升达经贸管理学院 大学英语混合式课程 参考 资料
  7. mysql启动失败“MySQL Daemon failed to start”
  8. 案例7-3 统计工龄 (20 分)(简单)
  9. /proc/meminfo之谜
  10. kali linux添加环境变量
  11. 怎样压缩PPT文件的体积
  12. 一年级计算机算文具吗,一年级老师说,用这样文具的孩子,课堂上都没有认真听讲...
  13. MATLAB中histogram函数的使用
  14. 可视化设计-设备篇(LED屏幕)
  15. C++ Reference: Standard C++ Library reference: C Library: cmath: fma
  16. 阅读器的转换功能搬家了,你发现了吗?
  17. 杭电OJ——ACM 1009.FatMouse‘ Trade
  18. 微信小程序第四篇:生成图片并保存到手机相册
  19. node.js+Vue计算机毕设项目的网上点餐系统(程序+LW+部署)
  20. 易语言GDI内存画板_3.0模块

热门文章

  1. 一夜狼人杀-一觉睡醒( ̄ー ̄)发现游戏结束了。。
  2. OCR(光学字符识别)
  3. 运动蓝牙耳机品牌推荐:2022年六大运动耳机推荐
  4. 阿里云GPU计算型弹性裸金属服务器实例ebmgn6v详解和使用场景
  5. USACO Section 1.1 Broken Necklace
  6. 因式分解结合最近邻:多层面的协同过滤模型
  7. 工程技术开发的圈套与局限性
  8. 8瓶水和3只小老鼠的故事(python解决)思路
  9. 亚马逊做精品选品怎么选?
  10. Centos7 配置阿里云的 base 和 epel 源