/*
用f[i][k]表示考虑到第i个雕塑,分成k组,可不可行(这是一个bool类型的数组)
转移:
f[i][k]=f[j][k-1],sum[i]-sum[j]合法
*/
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
using namespace std; typedef long long ll;
const int max_n = ;
const ll inf = 1e15; inline int getnum() {
int ans = ; char c; bool flag = false;
while (!isdigit(c = getchar()) && c != '-');
if (c == '-') flag = true; else ans = c - '';
while (isdigit(c = getchar())) ans = ans * + c - '';
return ans * (flag ? - : );
} int a[max_n], limit_A, limit_B, n;; namespace part1 {
const int max_n_small = ;
bool able[max_n_small][max_n_small]; inline bool check(ll ba, ll tar) {
memset(able, , sizeof(able));
able[][] = true; for (int i = ; i <= n; i++)
for (int j = ; j <= limit_B; j++) {
ll sum = a[i];
for (int k = i - ; k >= ; k--) {
if (able[k][j - ] && (sum | ba) < tar) {
able[i][j] = true;
break;
}
sum += a[k];
}
} for (int i = limit_A; i <= limit_B; i++)
if (able[n][i])
return true;
return false;
} inline void solve() {
ll sum = ;
for (int i = ; i <= n; i ++)
sum += a[i];
sum <<= ;
int max_bit = ;
for (; sum >> max_bit; max_bit++);
max_bit--; ll ans = ;
for (int i = max_bit; i >= ; i--) {
ll tar = ans | (1LL << i);
if (!check(ans, tar))
ans += (1LL << i);
}
cout << ans << endl;
}
} namespace part2 {
const int max_n_small = ;
bool able[max_n_small];
int f[max_n_small]; inline bool check(ll ba, ll tar) {
memset(able, , sizeof(able));
memset(f, 0x7f, sizeof(f));
able[] = true;
f[] = ; for (int i = ; i <= n; i++) {
ll sum = a[i];
for (int k = i - ; k >= ; k--) {
if (able[k] && (sum | ba) < tar) {
able[i] = true;
f[i] = min(f[i], f[k] + );
} sum += a[k];
}
} if (able[n] && f[n] <= limit_B)
return true;
else
return false;
} inline void solve() {
ll sum = ;
for (int i = ; i <= n; i ++)
sum += a[i];
sum <<= ;
int max_bit = ;
for (; sum >> max_bit; max_bit++);
max_bit--; ll ans = ;
for (int i = max_bit; i >= ; i--) {
ll tar = ans | (1LL << i);
if (!check(ans, tar))
ans += (1LL << i);
}
cout << ans << endl;
}
} int main() {
freopen("sculpture.in", "r", stdin);
freopen("sculpture.out", "w", stdout);
n = getnum(); limit_A = getnum(); limit_B = getnum();
for (int i = ; i <= n; i++) a[i] = getnum(); if (n > )
part2::solve();
else
part1::solve();
}

繁华模拟赛 ljw分雕塑的更多相关文章

  1. 繁华模拟赛 ljw搭积木

    #include<iostream> #include<cstdio> #include<string> #include<cstring> #incl ...

  2. 繁华模拟赛 Vicent与游戏

    #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #i ...

  3. 2018/3/20 noip模拟赛 5分

    T1 傻逼题,写了cmp没sort,5分. T2 树上差分,写了树剖线段树,超时,0分. T3 树归,0分. 我是个zz

  4. 2018/3/13 noiρ[rəʊ]模拟赛 125分

    T1 60分暴力,水分也不会水,打表也不会打,正解是不可能写正解的,这辈子都写不出来正解的,虽然是zz题但是也拿不到分这样子. 正解:(啥?正解是sb组合数?这都他娘的想不到,真鸡儿丢人我自杀吧.) ...

  5. 20180824Noip模拟赛10分总结

    嗯,总之,是我太傻了. 我真傻,真的,我单知道最小生成树,却不知道还有最大生成树 T1 最大生成树.... 累加每一个环内,最大生成树的边权,(对环求最大生成树,则必然剩下一个边权最小的边(因为是求生 ...

  6. [繁华模拟赛]Evensgn 剪树枝

    Evensgn 剪树枝 题目 繁华中学有一棵苹果树.苹果树有 n 个节点(也就是苹果),n − 1 条边(也就 是树枝).调皮的 Evensgn 爬到苹果树上.他发现这棵苹果树上的苹果有两种:一 种是 ...

  7. 清北学堂模拟赛d2t6 分糖果(candy)

    题目描述总共有n颗糖果,有3个小朋友分别叫做L,Y,K.每个小朋友想拿到至少k颗糖果,但这三个小朋友有一个共同的特点:对3反感.也就是说,如果某个小朋友拿到3颗,13颗,31颗,333颗这样数量的糖果 ...

  8. 繁华模拟赛day8 牛栏

    /* 标称并没有用到题解中提到的那种奇妙的性质,我们可以证明,正常从1开始走的话,需要T次,如何使这个次数减小?题解中提到一个办法,有一步小于n/t,我们考虑这一步,如果把它匀到左右两步中,则可以减小 ...

  9. 繁华模拟赛day8 字典序

    /* 这个题要我们求一个字典序,字符串给出的顺序,会对字母的字典序前后相对顺序进行限定,如何用来表示这种限定,我们注意到这种一个之后接着一个,只有先输出他前面的才能输出他,很明显就是拓扑排序,最小方案 ...

随机推荐

  1. IOS开发之—— 各种加密的使用(MD5,base64,DES,AES)

    基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...

  2. #Linux学习笔记# 自定义shell终端提示符

    我使用的Linux发行版是LinuxMint 17.2 Rafaela,默认情况下Terminal中的shell提示包括了用户名.主机名.当前目录(绝对路径)和提示符.这样会导致当进入一个比较深的目录 ...

  3. Bootstrap系列 -- 37. 基础导航样式

    Bootstrap框架中制作导航条主要通过“.nav”样式.默认的“.nav”样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如“nav-tabs”.“nav-pills”之类.比如右侧代码 ...

  4. Android之POST方法的使用

    java代码 package xidian.dy.com.chujia; import android.os.Bundle; import android.os.Handler; import and ...

  5. 'UserInfoBLL' node cannot be resolved for the specified context [MVC展示数据.Controllers.LoginController]问题解决

    我们在配置Spring.Net时,往往会提示找不到,然而看了看都对着呢?那么问题出在了哪? 问题呈现: 进行如下修改,将名字随便取个,不为BLL方法名字即可,我这里添加了一个1,注意这里改了,控制器里 ...

  6. please tell me the error about java Graphics

    this is the code: public class paint extends JFrame{ public paint(){ setLayout(new FlowLayout()); se ...

  7. Mac上git的安装配置与使用简述

    Mac下git搭建及使用 之前就只是经常在GitHubs上下载代码,也没注意怎么上传项目.一开始对git都没什么了解花了几个小时去小补了下知识.如果有需要可以转去这里学习:[GIT使用简易指南] (h ...

  8. javascript键盘输入控制

    获取键盘控制事件 document.onkeydown = keyDown 当浏览器读到这个语句时,无论按下键盘上的哪个键,都将呼叫KeyDown()函数. 不同浏览器的实现: Netscape Ne ...

  9. Apache MINA(一)

    Apache MINA is a network application framework which helps users develop high performance and high s ...

  10. myeclipse-建立webservice服务端和客户端

    一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...