当前位置: 首页 > news >正文

用php做的网站用什么数据库自助建站系统破解版

用php做的网站用什么数据库,自助建站系统破解版,wordpress商品展示,广州网站开发哪家强题目链接 题面 题目描述 在2016年#xff0c;佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题#xff0c;现在他在研究一个难题#xff0c;需要你来帮助他。这个难题是这样子的#xff1a;给出一个1到n的全排列#xff0c;现在对这个全排列序列进行…题目链接 题面 题目描述 在2016年佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题现在他在研究一个难题需要你来帮助他。这个难题是这样子的给出一个1到n的全排列现在对这个全排列序列进行m次局部排序排序分为两种 1:(0,l,r)表示将区间[l,r]的数字升序排序 2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。 输入输出格式 输入格式 输入数据的第一行为两个整数n和m。n表示序列的长度m表示局部排序的次数。 1 n, m 10^5第二行为n个整数表示1到n的一个全排列。接下来输入m行每一行有三个整数op, l, r, op为0代表升序排序op为1代表降序排序, l, r 表示排序的区间。 最后输入一个整数qq表示排序完之后询问的位置, 1 q n。1 n 10^51 m 10^5 输出格式 输出数据仅有一行一个整数表示按照顺序将全部的部分排序结束后第q位置上的数字。 题解 这道题好有趣 正解居然是二分答案 因为最后要询问的只有一个位置所以直接二分这个位置上的数。 然后修改一下原数组——原数组中比二分的答案大的数都改为1, 小于等于的都改为0。 然后用线段树模拟整个排序过程。把一个01序列的区间排序是很简单的——数出区间内有多少个1, 然后如果是顺序排序把右面对应的几个改成1, 剩下的改成0。 模拟执行一遍之后就可以知道实际上排完序后询问位置上的数应该比你二分的答案大还是小了继续二分即可。 #include cstdio #include cstring #include cmath #include algorithm #include iostream #include vector #define space putchar( ) #define enter putchar(\n) typedef long long ll; using namespace std; template class T void read(T x){char c;bool op 0;while(c getchar(), c 0 || c 9)if(c -) op 1;x c - 0;while(c getchar(), c 0 c 9)x x * 10 c - 0;if(op) x -x; } template class T void write(T x){if(x 0) putchar(-), x -x;if(x 10) write(x / 10);putchar(0 x % 10); }const int N 100005; int n, m, a[N], val[N], pos, op[N], ql[N], qr[N]; int data[4*N]; bool lazy[4*N], tag[4*N];void build(int k, int l, int r){tag[k] 0;if(l r) return (void)(data[k] val[l]);int mid (l r) 1;build(k 1, l, mid);build(k 1 | 1, mid 1, r);data[k] data[k 1] data[k 1 | 1]; } void pushdown(int k, int l, int r){if(!tag[k]) return;int mid (l r) 1;data[k 1] lazy[k] * (mid - l 1);data[k 1 | 1] lazy[k] * (r - mid);lazy[k 1] lazy[k 1 | 1] lazy[k];tag[k 1] tag[k 1 | 1] 1;tag[k] 0; } void change(int k, int l, int r, int ql, int qr, int x){if(ql l qr r) return (void)(data[k] x * (r - l 1), lazy[k] x, tag[k] 1);pushdown(k, l, r);int mid (l r) 1;if(ql mid) change(k 1, l, mid, ql, qr, x);if(qr mid) change(k 1 | 1, mid 1, r, ql, qr, x);data[k] data[k 1] data[k 1 | 1]; } int query(int k, int l, int r, int ql, int qr){if(ql l qr r) return data[k];pushdown(k, l, r);int mid (l r) 1, ret 0;if(ql mid) ret query(k 1, l, mid, ql, qr);if(qr mid) ret query(k 1 | 1, mid 1, r, ql, qr);return ret; }int main(){read(n), read(m);for(int i 1; i n; i) read(a[i]);for(int i 1; i m; i)read(op[i]), read(ql[i]), read(qr[i]);read(pos);int l 1, r n, mid;while(l r){mid (l r) 1;for(int i 1; i n; i)val[i] a[i] mid;build(1, 1, n);for(int i 1; i m; i){int cnt query(1, 1, n, ql[i], qr[i]);if(op[i]){if(cnt) change(1, 1, n, ql[i], ql[i] cnt - 1, 1);if(ql[i] cnt qr[i]) change(1, 1, n, ql[i] cnt, qr[i], 0);}else{if(cnt) change(1, 1, n, qr[i] - cnt 1, qr[i], 1);if(qr[i] - cnt ql[i]) change(1, 1, n, ql[i], qr[i] - cnt, 0);}}if(query(1, 1, n, pos, pos)) l mid 1;else r mid;}write(l), enter;return 0; } 转载于:https://www.cnblogs.com/RabbitHu/p/BZOJ4552.html
http://wiki.neutronadmin.com/news/364867/

相关文章:

  • 谷歌怎么把两个网站做反链取消wordpress邮箱认证
  • 做国际网站有用吗网站建设课程设计百度文库
  • 网站建设学费要多少企业系统申报
  • 网站建设准备资料福州百诚互联
  • 东莞网网站公司简介精准营销服务
  • 轻应用网站模板制作网站什么制作
  • 绿植租摆网站建设大连专业网站设计服务商
  • 贵金属如何用网站开发客户上市公司专利查询网站
  • 设计师 推荐 网站电子商务网站建设管理论文
  • 深圳企业网站设php网站开发案例教程
  • 宝塔面板加wordpress建站去成都旅游攻略及费用
  • 网站专题策划案例天津网站开发培训
  • 学网站建设软件开发长沙做企业网站推广的公司
  • 专做耐克阿迪鞋网站建设音乐网站
  • 教育类网站模板小学生班级优化大师
  • 个性化的个人网站简易网站优化要从哪些方面做
  • 免费建立教育网站惠州网站建设服务
  • 免费生成网站网址html5商城网页模板
  • 网站到期了网站充值怎么做分录
  • 章丘营销型网站建设wordpress home.php
  • wordpress文章列表不显示图片邢台网站优化公司
  • 网站备案网站directadmin网站储存目录
  • 潍坊建设厅网站自助友链平台
  • 网站营销活动策划四川省城乡和住建厅官网
  • 网站没有被百度收录 163com免费邮箱登
  • 网站建设背景文字太原市建设北路小学网站
  • 上海网站建设公司推荐排名建筑工程网首页
  • 怎么在网站底部做备案号下载代码的网站
  • 想要一个网站图库素材
  • 微商做图王官方网站国外优秀购物网站