博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019赛季多校联合新生训练赛第八场(2018/12/22)补题题解
阅读量:5283 次
发布时间:2019-06-14

本文共 3176 字,大约阅读时间需要 10 分钟。

感慨

这次有点感冒,昏迷程度比较大中途还溜了

感谢

感谢qut的同学的帮助!!!

A 小X与三角形(数学)

公式

两边的和-两边的差-1

因为边最小得大于两边的差,边最大得小于两边的和所以说求得是一个开区间内元素的个数

代码

#include 
using namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll a,b; cin>>a>>b; cout<<(a+b)-abs(a-b)-1;}

B 小X与机器人(数学)

比赛昏迷题之一。。。今天早晨起来就瞬间会了

直接枚举各个x看对应直线的方程算出来的y是不是一个整数点即可,然后特判一下相同相同y轴的情况即可

#include 
using namespace std;int bk[2332][2332];int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); double x1,y1,x2,y2; int ans=2; cin>>x1>>y1>>x2>>y2; double k=(y2-y1)/(x2-x1); double b=y1-k*x1; double xx=min(x1,x2); double yy=min(y1,y2); double tx=max(x1,x2); double ty=max(y1,y2); for(double i=xx+1;i<=tx-1;i++) { int t1=k*i+b; double t2=k*i+b; if(t1==t2&&!bk[int(i)][t1]) ans++,bk[int(i)][t1]=1; } if(tx==xx) cout<

C 小X与机器人(数学)

这个直接应用勾股定理。枚举每一个点与这三个点的距离,剩下两个点的距离和等于最后的答案的那个点的距离

代码

#include 
using namespace std;double a[4];int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); double x1,y1,x2,y2,x3,y3; cin>>x1>>y1>>x2>>y2>>x3>>y3; for(double i=1;i<=19;i++) for(double j=1;j<=19;j++) { a[0]=pow((i-x1),2)+pow((j-y1),2); a[1]=pow((i-x2),2)+pow((j-y2),2); a[2]=pow((i-x3),2)+pow((j-y3),2); sort(a,a+3); if(a[0]==a[1]&&a[2]==a[0]+a[1]) return cout<
<<" "<

D 小X与缩写(字符串基础)

考场上写的很丑也有些昏迷的题

思路应该很多,我这个思路是挺复杂的

代码

#include 
using namespace std;vector
vac;int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); string a; getline(cin,a); stringstream s; s<
>t) { if(t[0]=='(') t1=1; if(t1) { for(int i=0;i

E 小X与游戏(贪心)

如果上面的牌小于下面的牌那么就不选这一堆,否则选这一堆。然后把选出来的牌排序从大到小算总和然后求差

代码

#include 
using namespace std;typedef long long ll;int num[666666];bool cmp(ll a,ll b){ return a>b;}int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll n,p=0,a1=0,a2=0; cin>>n; for(int i=0;i
>t1>>t2; if(t1>=t2) num[p++]=t1,num[p++]=t2; } sort(num,num+p,cmp); int f=1; for(int i=0;i

F 小X与队列(思维)

先开一个栈,把说到的编号放入栈中,然后输出栈,如果之前输出过了这个数那么不再进行输出。然后再枚举剩下的数,如果没有在栈中输出那么按照顺序输出即可

代码

#include 
using namespace std;int now[100005],num[100005],p,bk[100005];int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin>>n>>m; for(int i=1;i<=n;i++) num[i]=i; while(m--) { int t; cin>>t; now[p++]=t; } for(int i=p-1;i>=0;i--) if(!bk[now[i]]) cout<
<<" ",bk[now[i]]=1; for(int i=1;i<=n;i++) if(!bk[num[i]]) cout<
<<" ";}

G 小X与神牛(不明)

待填坑

H 扑克牌游戏(语法基础)

不知道怎么错的都。。。我今天早晨起来又打了一遍,整理了一下思路,发现还不让交。。。

代码略。。。今天早晨的代码没有交也没有存档了。。。

思路就是找出来那些比他大的,然后注意如果点数相同算一个,然后输出点数最小的。还得注意a是最大的,具体可以把1改成14

I 换位置游戏(不明)

待填坑

J 小球装箱游戏(结构体排序)

对小球先进行一波排序,先按照大小降序排,如果大小相等那么按照颜色红色的排在前面

然后因为n一定是偶数那么按照前n/2是A箱后n/2是B箱进行挨个计算即可

代码(当时昏迷排序规则都写反了)

#include 
using namespace std;struct node{ int id,sum;}num[666666];bool cmp(node a,node b){ return a.sum==b.sum?a.id>b.id:a.sum
>n; for(int i=0;i
>num[i].sum>>num[i].id; sort(num,num+n,cmp); for(int i=0;i

K 连续质数和(不明)

待填坑

转载于:https://www.cnblogs.com/baccano-acmer/p/10166332.html

你可能感兴趣的文章
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>
Redis的安装与使用
查看>>
P1970 花匠
查看>>
java语言与java技术
查看>>
NOIP2016提高A组五校联考2总结
查看>>
iOS 项目的编译速度提高
查看>>
table中checkbox选择多行
查看>>
Magento开发文档(三):Magento控制器
查看>>
性能调优攻略
查看>>
ie6解决png图片透明问题
查看>>
瞬间的永恒
查看>>
2019-8-5 考试总结
查看>>
JS中实现字符串和数组的相互转化
查看>>
web service和ejb的区别
查看>>
Windows Azure Cloud Service (29) 在Windows Azure发送邮件(下)
查看>>
CS61A Efficiency 笔记
查看>>
微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
查看>>
div或者p标签单行和多行超出显示省略号
查看>>
Elasticsearch 滚动重启 必读
查看>>