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亚洲区长春站的更多相关文章

  1. 2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building

    House Building Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  2. 2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory

    Chip Factory Time Limit: 18000/9000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)T ...

  3. 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree

    Partial Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)To ...

  4. 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 ...

  5. 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 ...

  6. 2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild

    Rebuild Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total S ...

  7. 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 ...

  8. 2015ACM/ICPC亚洲区长春站 A hdu 5527 Too Rich

    Too Rich Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  9. HDU-5532//2015ACM/ICPC亚洲区长春站-重现赛-F - Almost Sorted Array/,哈哈,水一把区域赛的题~~

    F - Almost Sorted Array Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

随机推荐

  1. MAC && Linux terminal session clone

    MAC && Linux terminal session clone 背景 本人使用的是mac,terminal配置的是iterm2,相信许多公司和我司一样登录dev/beta/pr ...

  2. 【原】常用的javascript设计模式

    设计模式太多了,貌似有23种,其实我们在平时的工作中没有必要特意去用什么样的设计模式,或者你在不经意间就已经用了设计模式当中的一种.本文旨在总结平时相对来说用的比较多的设计模式. 什么是设计模式 百度 ...

  3. Python Day6

    面向对象 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强...&qu ...

  4. Backbone源码阅读手记

    Backbone.js是前端的MVC框架,它通过提供模型Models.集合Collection.视图Veiew赋予了Web应用程序分层结构.从源码中可以知道,Backbone主要分了以下几个模块: ( ...

  5. 兼容IE6的min-width、min-height

    如果一个站是宽屏的,你左右拖动浏览器的窗口网站宽度会随着窗口的大小而改变,而浏览器窗口宽度减小到一定程度后就会出现下边的滚动条,网站宽度就不会再减小了,我们知道这一简单的功能用css的min-widt ...

  6. nyoj 106背包问题(贪心专题)

    背包问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w< ...

  7. 【bzoj3531】 [SDOI2014]旅行

    题目描述 S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教.绝地教都是常见的信仰.为了方便,我们 ...

  8. UVa2326

    理解:区域覆盖.注意1,属于的区间有大小颠倒的情况:注意2,看图 ,两排房间公用一条走廊(for instance 1->3  4->6 不可公用) #include<iostrea ...

  9. Maven 入门 (2)—— 创建Maven项目

    http://blog.csdn.net/kakashi8841/article/details/17427043 读这篇文章之前请先确保你成功安装了maven,如果你还没安装成功,请先看:Maven ...

  10. App提交Appstore审核流程

    原文: https://www.douban.com/note/461351420/ 这是一个app提交到iTunces Connect被拒了4次摸索出来的经验,说多了都是泪,先让我擦擦...好了,话 ...