这个比赛感觉超级差,评测机前两个小时根本没用,所有题目都是in queue ,所以那个时候就没什么兴趣了,但是后面好了的情况下,又做了几题

首先是A题Fast Fourier Transform ,签到题

题意大致是给你两个数的和以及这两个数的最大公约数,让你求这两个数,如果不存在就输出-1

那先假定一个数是这个最大公约数,另一个数这个和减去最大公约数,最后判断是否满足这两个数的最大公约数

#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(){int n,m;cin>>n>>m;if(n%m!=0||n==m) cout<<-1<<endl;else {cout<<m<<' '<<n-m<<endl;}return 0;
}

B题Suffix Automaton,数学题

给一个凸多边形,问这个凸多边形的顶点所能构成的三角形中的最小面积乘以2.

就是遍历这个凸多边形的顶点,如果要最小面积,这三个顶点一定是在凸多边形中连续的,然后求三角形面积就用在坐标轴上的向量求面积也就是交叉相乘相减再除以2,但是要求的是最小面积的两倍,所以也就不必除以2了。

#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
struct node{long long x,y;
}s[200005];unsigned long long area(node a,node b,node c){unsigned long long sum=abs(a.x*b.y+b.x*c.y+c.x*a.y-a.x*c.y-b.x*a.y-c.x*b.y);return sum;}
int main()
{int n,m;cin>>n;for(int i=0;i<n;i++) cin>>s[i].x>>s[i].y;unsigned long long minx=1e19;for(int i=0;i<n-2;i++) minx=min(minx,area(s[i],s[i+1],s[i+2]));minx=min(minx,area(s[0],s[n-1],s[n-2]));minx=min(minx,area(s[0],s[1],s[n-1]));cout<<minx<<endl;
}

C题Size Balanced Tree,区间贪心

给你n个区间,要求选取最少的点,满足每个区间上至少有一个点

思路:就是将区间按终点排序,然后从小到大遍历一遍,每次先确定第一个终点的位置,如果小于下一个的起点小于这个终点则跳过,否则就记录下这个终点,并标记这个超过终点的位置的终点

#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
using namespace std;
struct node{int a,b;
}s[200005];int cmp(node x,node y){if(x.b==y.b) return x.a<y.a;return x.b<y.b;}
int main()
{int n,m=0;int t=0;int cnt[200005];cin>>n;for(int i=0;i<n;i++) cin>>s[i].a>>s[i].b;sort(s,s+n,cmp);int sw=s[0].b;for(int i=1;i<n;i++){if(s[i].a>sw){cnt[t++]=sw;sw=s[i].b;}}cnt[t++]=sw;cout<<t<<endl;cout<<cnt[0];for(int i=1;i<t;i++) cout<<' '<<cnt[i];
}

E题Recurrent Neural Network,字符串操作

首先先给你两个字符串a,b,给你一个机会操作字符串,即颠倒a字符串中任意子串仅一次,问是否能将两个字符串变成相同

思路:我的思路可能跟大佬的思路不太一样,也比较复杂,就是先找到两个字符串第一个不同的位置,然后标记一下,继续在b串中找相同字符的位置并存起来,只需要遍历a串中的这个位置和存起来的所有位置的颠倒情况

是否存在使得两串相等的情况就OK了。

大佬的思路就是从前向后找第一个不同的位置,标记,然后从后向前找第一个不同的位置,标记,然后只需要颠倒这两个位置的子串再判断就行了

#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(){string a,b;string c;int vis[200005];int n=0,m=-1;cin>>a>>b;memset(vis,0,sizeof(vis));for(int i=0;i<a.length();i++){if(a[i]!=b[i]){m=i;for(int j=i+1;j<a.length();j++){if(a[i]==b[j]) vis[n++]=j;}break;}}if(m==-1){cout<<"YES"<<endl;return 0;}for(int i=0;i<n;i++){c=a;int sw=1;int ss=(m+vis[i])/2;if((m+vis[i])%2==0) sw=0;for(int j=ss;j>=m;j--){swap(c[j],c[ss+(sw++)]);}if(c==b){cout<<"YES"<<endl;return 0;}}cout<<"NO"<<endl;return 0;
}

J题签到题,队友a的,还拿了1血。。

给你n个边,问能找到的最大平行四边形数是多少

平行四边形只要两两相等就OK了,那只需要找每个长度有多少个相同的就OK了,数据较小可以用数组存

Select Code
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
using namespace std;
int a[200005];
int main()
{int n,i,x;cin>>n;while(n--){cin>>x;a[x]++;}int sum=0;for(i=1;i<=200001;i++){if(a[i]){sum+=a[i]/2;}}cout<<sum/2<<endl;return 0;
}

转载于:https://www.cnblogs.com/maybe96/p/9466371.html

SICNU 2018 Summer Training #9相关推荐

  1. 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324 Problem F. Grab The Tree Time Limit: 2000/1000 MS ...

  2. 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6336 Problem E. Matrix from Arrays Time Limit: 4000/20 ...

  3. Photoshop CC 2018 Essential Training: Design Photoshop CC 2018基本培训:设计 Lynda课程中文字幕

    Photoshop CC 2018 Essential Training: Design 中文字幕 Photoshop CC 2018基本培训:设计 中文字幕Photoshop CC 2018 Ess ...

  4. ZBrush 2018 Essential Training ZBrush 2018基本培训 Lynda课程中文字幕

    ZBrush 2018 Essential Training 中文字幕 ZBrush 2018基本培训 中文字幕ZBrush 2018 Essential Training ZBrush将3D建模,纹 ...

  5. Substance Painter 2018 Essential Training Substance Painter 2018基础教程 Lynda课程中文字幕

    Substance Painter 2018 Essential Training 中文字幕 Substance Painter 2018基础教程 中文字幕Substance Painter 2018 ...

  6. Photoshop CC 2018 Essential Training: Photography Photoshop CC 2018基础培训:摄影 Lynda课程中文字幕

    Photoshop CC 2018 Essential Training: Photography 中文字幕 Photoshop CC 2018基础培训:摄影 中文字幕Photoshop CC 201 ...

  7. Photoshop CC 2018 Essential Training: The Basics Photoshop CC 2018基本培训:基础 Lynda课程中文字幕

    Photoshop CC 2018 Essential Training: The Basics 中文字幕 Photoshop CC 2018基本培训:基础 中文字幕Photoshop CC 2018 ...

  8. 2018 Multi-University Training Contest 7 Age of Moyu

    Age of Moyu 来追梦 Problem Description Mr.Quin love fishes so much and Mr.Quin's city has a nautical sy ...

  9. 2018 Multi-University Training Contest 7

    1001 Age of Moyu (HDU 6386)   思路: 把Dijkstra的vis数组改成set判一判就好了.... //By SiriusRen #include <bits/st ...

最新文章

  1. c++ 三次多项式拟合_非线性回归模型(一)--多项式回归
  2. python中sorted的用法append_python sorted()排序详解
  3. 开发者如何写好技术简历?
  4. switch芯片和phy芯片的区别_感应式芯片卡CPU卡的FM1208-9和FM1208-10有什么区别,你知道吗?...
  5. mysql57服务无法启动_将mysqld.service服务加入到systemctl
  6. Visual Studio 2019 16.4 发布,加入对 GitHub 的整合
  7. python+Django框架运用(一)
  8. [swift] LeetCode 169. Majority Element
  9. Spring - 理解BeanDefinition
  10. suse使用ISO文件制作zypper源
  11. 安卓rom制作教程_刹那 刷机教程20-1三星S10N10等系列韩版国行安卓9升级10详细步骤...
  12. nginx搭建文件服务器
  13. 纯前端html导出pdf(jsPDF.js)-分页-不分页
  14. 漏洞优先级技术(VPT)导论
  15. 【性能测试之问题分析】遇到内存告警百分之80以上的排查逻辑及实例分析(关键字:JVM、JAVA)
  16. python 3d绘图模块_Python绘制3D图形
  17. 炸金花游戏(4)--炸金花AI基准测试评估
  18. Purism FAQ
  19. 华数机器人编程语言_华数机器人:以自主创新为引领,深耕细分领域
  20. UE4 命令工具打包

热门文章

  1. 一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用
  2. SAP云平台的Document Service
  3. Word2019上面的MathType7.4插件忽然消失了【终极解决办法记录】
  4. mysql怎么创建文字表_myMySQL数据库 如何将中文转拼音 MySQL数据库使用教程
  5. yjv是电缆还是电线_VV是什么电缆?与YJV电缆有何区别?
  6. linux服务器无密码登录不了,设置ssh无密码登录linux服务器的方法
  7. excel图表之道_学习笔记:Excel之图表布局
  8. php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序
  9. Windows和VMware虚拟机相互间无法复制的解决方案
  10. mx250 计算能力_熟悉的刀法:英伟达 MX 250 也有 25W 和 10W 两个版本