hihoCoder太阁最新面经算法竞赛17
比赛链接:http://hihocoder.com/contest/hihointerview26
A.排序后枚举两个点,确定一个矩形后二分剩下两个点。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 typedef long long LL; 5 const int maxn = 1010; 6 typedef struct Point { 7 int x, y; 8 Point() {} 9 Point(int xx, int yy) : x(xx), y(yy) {} 10 }Point; 11 int n; 12 LL ans; 13 Point p[maxn]; 14 15 bool cmp(Point a, Point b) { 16 if(a.x == b.x) return a.y < b.y; 17 return a.x < b.x; 18 } 19 20 bool bs(int x, int y) { 21 int ll = 0, rr = n, mm; 22 while(ll <= rr) { 23 mm = (ll + rr) >> 1; 24 if(p[mm].x == x && p[mm].y == y) return 1; 25 else if(cmp(p[mm], Point(x, y))) ll = mm + 1; 26 else rr = mm - 1; 27 28 } 29 return 0; 30 } 31 32 int main() { 33 // freopen("in", "r", stdin); 34 int x3, y3, x4, y4; 35 while(~scanf("%d", &n) && n) { 36 ans = 1000000LL * 1001000LL; 37 for(int i = 0; i < n; i++) { 38 scanf("%d%d", &p[i].x, &p[i].y); 39 } 40 sort(p, p+n, cmp); 41 for(int i = 0; i < n; i++) { 42 for(int j = i + 1; j < n; j++) { 43 x3 = p[i].x; y3 = p[j].y; 44 x4 = p[j].x; y4 = p[i].y; 45 if(bs(x3, y3) && bs(x4, y4)) { 46 int a = x3 - x4; 47 int b = y3 - y4; 48 if((LL)a * b == 0) continue; 49 ans = min(ans, abs((LL)a*b)); 50 } 51 } 52 } 53 printf("%lld\n", ans == 1000000LL * 1001000LL ? -1 : ans); 54 } 55 return 0; 56 }
B.按题要求爆搜
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 10; 5 int n; 6 set<string> ret; 7 set<string>::iterator it; 8 int num[maxn]; 9 set<int> pos; 10 11 int main() { 12 // freopen("in", "r", stdin); 13 // freopen("out", "w", stdout); 14 for(int i = 1; i < maxn; i++) num[i] = i; 15 while(~scanf("%d", &n)) { 16 ret.clear(); 17 do { 18 int nn = (1 << (n)); 19 for(int i = 0; i < nn; i++) { 20 pos.clear(); 21 int tmp = i; 22 int cnt = 0; 23 while(tmp) { 24 if(tmp & 1) pos.insert(cnt+1); 25 tmp >>= 1; cnt++; 26 } 27 string t = ""; 28 bool ex = 0; 29 t += (num[1] + '0'); 30 int pre = num[1]; 31 for(int i = 2; i <= n; i++) { 32 if(ex) break; 33 if(pos.find(i) != pos.end()) { 34 t += '-'; 35 pre = -1; 36 } 37 if(pre > num[i]) { 38 ex = 1; 39 break; 40 } 41 t += (num[i] + '0'); 42 pre = num[i]; 43 } 44 if(!ex) ret.insert(t); 45 } 46 // for(int i = 1; i <= n; i++) printf("%d", num[i]); 47 // printf("\n"); 48 }while(next_permutation(num+1, num+n+1)); 49 // printf("%d\n", ret.size()); 50 for(it = ret.begin(); it != ret.end(); it++) { 51 cout << *it << endl; 52 } 53 } 54 return 0; 55 }
C.找到规律后斯特灵数胡搞(好像没必要?)
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 typedef long long LL; 5 const int maxn = 1010; 6 const LL mod = 1000000007LL; 7 LL f[maxn], a[maxn]; 8 LL S[maxn][maxn]; 9 int n; 10 11 LL exgcd(LL a, LL b, LL &x, LL &y) { 12 if(b == 0) { 13 x = 1; 14 y = 0; 15 return a; 16 } 17 else { 18 LL ret = exgcd(b, a%b, x, y); 19 LL tmp = x; 20 x = y; 21 y = tmp - a / b * y; 22 return ret; 23 } 24 } 25 26 LL inv(LL a) { 27 LL x, y; 28 exgcd(a, mod, x, y); 29 return (x % mod + mod) % mod; 30 } 31 32 LL C(LL n, LL m) { 33 return f[n] * inv(f[m]) % mod * inv(f[n-m]) % mod; 34 } 35 36 LL mul(LL x, LL n) { 37 LL ret = 1; 38 while(n) { 39 if(n & 1) ret = ret * x % mod; 40 n >>= 1; 41 x = x * x % mod; 42 } 43 return ret; 44 } 45 46 int main() { 47 // freopen("in", "r", stdin); 48 // freopen("out", "w", stdout); 49 memset(S, 0, sizeof(S)); 50 S[0][0] = 1; 51 for(int p = 1; p < maxn; p++) { 52 for(int k = 0; k < maxn; k++) { 53 S[p][k] = (LL)k * S[p-1][k] % mod + S[p-1][k-1] % mod; 54 } 55 } 56 f[0] = 1; 57 for(int i = 1; i < maxn; i++) { 58 f[i] = f[i-1] * (LL)i % mod; 59 } 60 memset(a, 0, sizeof(a)); 61 a[0] = 1; a[1] = 1; 62 for(int i = 2; i <= 1000; i++) { 63 for(int k = 1; k <= i; k++) { 64 a[i] = (a[i] + f[k] * S[i][k] % mod) % mod; 65 } 66 } 67 while(~scanf("%d", &n)) { 68 printf("%lld\n", a[n]); 69 } 70 return 0; 71 }
转载于:https://www.cnblogs.com/kirai/p/6160137.html
hihoCoder太阁最新面经算法竞赛17相关推荐
- hihoCoder太阁最新面经算法竞赛18
比赛链接:http://hihocoder.com/contest/hihointerview27/problems A.Big Plus 模拟水 1 #include <bits/stdc++ ...
- 光刷题不参加这些算法竞赛?太亏了!
前言 大家好,我是bigsai.这篇文章给大家介绍算法竞赛,如果有帮助还请一键三连支持一下! 最近有些学妹问我咱们计算机专业的有哪些比赛可以参加呢?我眉头一皱,想了想咱们计算机专业竞赛好像确实蛮多的, ...
- 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- c语言二分法查找一个数_算法竞赛小专题系列(1):二分法、三分法
本系列是这本算法教材的扩展资料:<算法竞赛入门到进阶>. 罗勇军.郭卫斌. 清华大学出版社 二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 1. ...
- 二分法、三分法 --算法竞赛专题解析(1)
本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 2019.8 网购:京东 当当 作者签名书 如有建议, ...
- 【更新完毕】《算法竞赛中的初等数论》(ACM / OI / MO)前言、后记、目录索引(十五万字符的数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 <算法竞赛中的初等数论>的全部内容的 Portable Document Format 版 ...
- UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...
- 推荐算法竞赛TOP方案合集
作 者:九羽 公众号:炼丹笔记 推荐算法竞赛相关 会议赛 (一)2020 ACM Twitter RecSys Challenge 问题背景: Twitter上呈现的是正在发生的事情,也是人们现在谈论 ...
- 《算法竞赛中的初等数论》(二)正文 0x20同余(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- 如何学习机器学习、看待算法竞赛?粉丝精选留言
在前几日的赠书活动中,看到大家的积极留言,非常用心,可以看出对机器学习的热爱.经授权,CV君特意将一些52CV粉丝对学习机器学习.参与算法竞赛的看法.理解与经验放出来,与大家分享,值得收藏细品,希望他 ...
最新文章
- linux强制删除文件夹命令 rm -rf
- Zookeeper的安装与配置
- centos 7下独立的python 2.7环境安装
- 当网页太多时,用锚点 以及超链接的使用
- HDU - 6153 A Secret(KMP的next数组性质/扩展KMP)
- Shallow and retained sizes
- 练习:写一个脚本,完成以下任务
- 每日一测5(关于继承)
- silverlight(二)样式
- python函数大全pdf_python内置函数大全.pdf
- java车牌号识别EasyPR_EasyPR
- 上海工程技术大学c语言商店存货管理系统,商店存货管理系统.docx
- C++ 偏微分数值计算库_「首席架构师推荐」数值分析软件精选
- VCF虚拟融合架构--企业IT基础架构建设新趋势-李飞 秦贵松 (VCF 虚拟融合架构 )
- linux拷贝文件命令
- [AE 表达式]路径跟随动画
- 【荣耀内推】2023届荣耀校招开启啦
- 地级市面板数据(2000-2019)四:失业+进出口+工资+规上企业+房地产等(stata版)
- 美国弗吉尼亚大学计算机科学,弗吉尼亚大学计算机科学系学位设置
- 再见2021,你好2022
热门文章
- visual studio怎么编译python_我的计算机上的Python使用哪个版本的Visual Studio进行编译?...
- php做一个微信退款,php实现微信支付之退款功能
- eclipse设置utf8编码_技术分享 | MySQL 8.0:字符集从 utf8 转换成 utf8mb4
- Python简化代码的操作有哪些
- JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
- StringBufferStringBuilder 源码详解
- Upgrading to Java 8——第四章 The Stream API
- hdu1505 dp:01矩形中最大面积全0矩阵
- 取消2008关机对话框
- TuxOnIce! 休眠到硬盘[zt]