2015ACM/ICPC亚洲区长春站
5532 Almost Sorted Array
题目大意:给你一个序列,如果它拿掉其中一个数后,可以是该序列成为非递减或非递增序列,则输出YES。
有两种思路,第一种代码比较简单,是LIS,复杂度nlogn,第二种是On的复杂度。
LIS的代码如下。
#include <set> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 const int INF = 0x3f3f3f3f; ; int s[maxn], dp[maxn]; int T, n; bool judge() { mem(dp, INF); ; i < n; i++) { *upper_bound(dp, dp + n, s[i]) = s[i]; } int len = lower_bound(dp, dp + n, INF) - dp; mem(dp, INF); ; i < n; i++) { *upper_bound(dp, dp + n, -s[i]) = -s[i]; } int len2 = lower_bound(dp, dp + n, INF) - dp; len = max(len2, len); ); } int main() { scanf("%d",&T); while(T--) { scanf("%d", &n); ; i < n; i++) { scanf("%d", s+i); } printf("%s\n", judge() ? "YES" : "NO"); } ; }
5533 Dancing Stars on Me题意:给你n个点对,然后求一个正多边形(当然是凸的)。问存不存在。
题目给的坐标都是整数,看一看那个tanα = 1 / n (n = 1, 2, 3, 4,....)好像只有α = 45°的时候才有可能构成正多边形。
然后瞎搞搞。。
#include <cstdio> #include <algorithm> using namespace std; ; int T, n; ]; struct ss{int x, y;}s[maxn]; int get_dis(int x1, int y1, int x2, int y2) { return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); } int main() { scanf("%d", &T); while(T--) { scanf("%d", &n); ; i < n; i++) { scanf("%d%d", &s[i].x, &s[i].y); } ) {printf("NO\n");continue;} , tot = ; ; i < n; i++) { ; j < n; j++) { temp[tot] = get_dis(s[i].x, s[i].y, s[j].x, s[j].y); tot++; } } sort(temp, temp + tot); ] == temp[]) ok = ; printf("%s\n", ok ? "YES" : "NO"); } ; }
5536 Chip Factory
题意:在数组a中找到三个数满足,ai+aj ^ ak 的值最大且i,j,k各不相同。
经典的异或用01字典树,推荐使用数组形式,快而且内存小。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; + ; * maxn; int n, T; LL a[maxn]; LL sz, ch[maxnode][], val[maxnode]; void init() { sz = ; memset(ch[], , ])); } //d=1表示插入,d=-1表示删除 void trie_update(LL x, int d) { ; ; i >= ; i--) { ; if(!ch[u][c]) { memset(ch[sz], , sizeof(ch[sz])); val[sz] = ; ch[u][c] = sz++; } u = ch[u][c]; val[u] += d; } } LL trie_query(LL v) { LL ans = ; ; ; i >= ; i--) { ; ] && val[ch[u][c ^ ]]) { ans |= ( << i); u = ch[u][c ^ ]; } else u = ch[u][c]; } return ans; } int main() { scanf("%d", &T); while(T--) { init(); scanf("%d", &n); ; i < n; i++) { scanf("%I64dd", a + i); trie_update(a[i], ); } LL ans = (a[] + a[]) ^ a[]; ; i < n; i++) { trie_update(a[i], -); ; j < n; j++) { trie_update(a[j], -); LL temp = trie_query((LL)a[i] + a[j]); ans = max(ans, temp); trie_update(a[j], ); } trie_update(a[i], ); } printf("%I64d\n", ans); } ; }
5538 House Building
题意:求这个东西的表面积。
#include <cstdio> #include <algorithm> using namespace std; int n, m, T; #define judge(x, y) 0 <= x && x < n && 0 <= y && y < m ][]; , , -, }; , -, , }; int main() { scanf("%d", &T); while(T--) { , bottom = , cnt = ; scanf("%d%d", &n, &m); ; i < n; i++) { ; j < m; j++) { scanf("%d", &ma[i][j]); tot += ma[i][j]; if(ma[i][j]) bottom++; ) cnt += (ma[i][j] - ) * ; } } * tot - bottom - cnt; ; ; i < n; i++) { ; j < m; j++) { ; k < ; k++) { int fx = i + dx[k]; int fy = j + dy[k]; if(judge(fx, fy)) { d += min(ma[fx][fy], ma[i][j]); } } } } ans -= d; printf("%d\n", ans); } ; }
2015ACM/ICPC亚洲区长春站的更多相关文章
- 2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building
House Building Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- 2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory
Chip Factory Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
- 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
Partial Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ...
- 2015ACM/ICPC亚洲区长春站 G hdu 5533 Dancing Stars on Me
Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 F hdu 5533 Almost Sorted Array
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild
Rebuild Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
- 2015ACM/ICPC亚洲区长春站 B hdu 5528 Count a * b
Count a * b Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- 2015ACM/ICPC亚洲区长春站 A hdu 5527 Too Rich
Too Rich Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- HDU-5532//2015ACM/ICPC亚洲区长春站-重现赛-F - Almost Sorted Array/,哈哈,水一把区域赛的题~~
F - Almost Sorted Array Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
随机推荐
- 搭建spring mvc项目
在之前搭建maven项目这篇的基础上继续集成,引入spring mvc支持 一.添加jar包引用 修改pom.xml文件,加入:(其他关联的jar包maven会自动引用) <!-- 项目属性 - ...
- 【Beta】Scrum03
Info 时间:2016.12.01 21:30 时长:15min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.12.04 21:30 Task Report Name ...
- Java文件写入,换行
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOExce ...
- <<< 三大框架简短介绍
Struts 搞业务 Spring 主要是AOP(面向方面编程)和IOC(控制反转)它里面用到很多的设计模式Hibernate Orm映射工具 实现面向对象的方式操作数据库hibernate 封装了j ...
- RabbitMQ消息队列(一): Detailed Introduction 详细介绍
http://blog.csdn.net/anzhsoft/article/details/19563091 RabbitMQ消息队列(一): Detailed Introduction 详细介绍 ...
- ajax 的返回值类型
ajax的dataType类型有三种:text,json,xml. text类型: 主页面: $.ajax({ url:"chuli.php", dataType:&quo ...
- WPF面试准备
1.wpf中有两类模板,控件模板controltemplate和datatemplate都派生自Frameworktemplate. 总共有三大模板 ControlTemplate,ItemsPane ...
- 将C#文档注释生成.chm帮助文档
由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...
- PHP通过ini_set()来设置显示错误信息和执行时间
PHP的 ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效.不是所有的选项都能被改函数设置的.具体那些值能够设置,可以查看手册中的列表. 就是能够设置php.ini ...
- 微信支付 发布后显示 System:access_denied
微信支付发布后显示 System:access_denied (android)或 System:not_allow(IOS) 我们项目用的是.NET MVC3 授权目录是:http://mynetd ...