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

佛山网站建设哪儿有服务器一年多少钱

佛山网站建设哪儿有,服务器一年多少钱,广州做seo的公司,网站开发设计是前端吗update in 2019.1.21 优化了一下文中年代久远的代码 的格式…… 什么是决策单调性#xff1f; 在满足决策单调性的情况下#xff0c;通常决策点会形如1111112222224444445555588888..... 即不可能会出现后面点的决策点小于前面点的决策点这种情况。 那么这个性质应该如何使用…update in 2019.1.21 优化了一下文中年代久远的代码 的格式……   什么是决策单调性 在满足决策单调性的情况下通常决策点会形如1111112222224444445555588888..... 即不可能会出现后面点的决策点小于前面点的决策点这种情况。 那么这个性质应该如何使用呢  1二分。   考虑到决策点单调递增因此我们考虑用单调队列存下当前的决策选取情况。   单调队列中存的量会带3个信息这是哪个决策点这个决策点会给哪个区间的点产生贡献这是一个区间所以算2个信息   相当于队列中存了很多个区间假设当前的决策点是这样的1111112222222333333   现在插入4这个决策那么我们就是要找到最靠左的合法位置将决策序列变为类似这样的序列111111222222444444444,   因为决策单调所以要覆盖肯定是一整段一整段的覆盖因此我们先判断4是否可以覆盖完3这个区间只需要看3的左端点是否可以被替换即可。   我们重复覆盖整个区间这个操作直到有个区间无法被完整覆盖或者已经到了不合法的位置(因为第x个点只能给区间[x 1, n]内的点产生贡献)。   如果这个区间无法被完整覆盖那么我们就在这个区间内二分找到最靠左的点使得4可以替换掉这个区间内的数然后修改管理这个区间的数的区间把被覆盖的区间让给4.   每次操作前弹掉已经没有用的决策点于是可以实现O(1)转移。(例如当前队首的决策点可以更新[3, x-1]这个区间但我们已经枚举到x了所以这个决策点显然就没有什么用了)     以下是某个年代久远的一道决策单调性优化的代码。   1 /*[NOI2009]诗人小G by ww3113306*/2 #includebits/stdc.h3 using namespace std;4 #define R register int5 #define AC 1001006 #define LL long long7 #define LD long double8 #define ac 1010009 #define inf 1000000000000000000LL 10 int t, L, p, n; 11 int Next[AC], s[AC], last[AC], l[AC], r[AC];//对应决策的管理区间,Next对last进行相反操作,以便输出 12 int q[AC], head, tail;//存下当前是哪个决策 13 LD f[AC]; 14 LL sum[AC]; 15 char ss[ac][45]; 16 17 inline LD qpow(LD x)//error!!!x也要用LD 18 { 19 LD ans 1;int have p; 20 while(have) 21 { 22 if(have 1) ans * x; 23 x * x, have 1; 24 } 25 return ans; 26 } 27 28 inline LD count(int x, int j){return f[j] qpow(abs(sum[x] - sum[j] - L - 1));}//j --- x 29 30 inline void pre() 31 { 32 scanf(%d%d%d, n, L, p); 33 for(R i 1; i n; i ) 34 { 35 scanf(%s, ss[i] 1); 36 s[i] strlen(ss[i] 1) 1;//加上后面的空格 37 sum[i] sum[i-1] s[i];//求出前缀和 38 } 39 } 40 41 void half(int x)//二分查找 42 { 43 int now q[tail], ll max(l[now], x 1), rr n, mid;//因为可能可以覆盖多个区间 44 while(ll rr) 45 { 46 mid (ll rr) 1; 47 if(count(mid, x) count(mid, now)) rr mid;//如果更优就往左缩短 48 else ll mid 1;//不然就向右寻找 49 } 50 r[q[tail]] ll - 1; 51 q[tail] x, l[x] ll, r[x] n; 52 } 53 54 inline void getans() 55 { 56 head 1, tail 1, q[1] 0, l[0] 1, r[0] n; 57 for(R i 1; i n; i ) 58 { 59 while(r[q[head]] i) head;//如果当前队首已经取不到了 60 int now q[head]; 61 f[i] count(i, now);//error ??? 用函数的话会爆了会自动转换为inf? 62 last[i] now; 63 if(count(n, q[tail]) count(n, i)) continue;//如果最后一个都不够优那就不二分了 64 while(count(l[q[tail]], q[tail]) count(l[q[tail]], i)) --tail;//如果当前可以覆盖前面的整个区间 65 half(i);//注意上面的while要在调用half之前修改这样取到的now才是正确的 66 } 67 } 68 69 inline void write() 70 { 71 if(f[n] inf) puts(Too hard to arrange); 72 else 73 { 74 printf(%lld\n, (LL)(f[n] 0.5));//注意精度误差 75 for(R i n; i; i last[i]) Next[last[i]] i; 76 int now 0; 77 for(R i 1; i n; i ) 78 { 79 now Next[now];//now先跳了吧 80 int be now;//先只到这行结尾因为for还要加的 81 for(R j i; j be; j ) printf(%s , ss[j] 1); 82 printf(%s\n, ss[be] 1), i be;//最后再赋i,因为for中还要用到当前i 83 } 84 } 85 puts(--------------------); 86 } 87 88 int main() 89 { 90 scanf(%d, t); 91 while(t--) pre(), getans(), write(); 92 return 0; 93 } View Code    2分治   假设我们当前的被决策区间是[l, r], 决策点区间是[ll, rr],那么我们取被决策区间的中点mid (l r) 1,然后在[ll, rr]中暴力寻找mid的最优决策点k于是根据决策单调性我们有   被决策区间[l, mid - 1]对应的决策点区间是[ll, k].同理被决策区间[mid 1, r]对应的决策点区间是[k, rr],于是我们就将这个区间划分为了2半不断向下递归减小决策点范围即可用正确的复杂度求出所有的转移。  转载于:https://www.cnblogs.com/ww3113306/p/9889295.html
http://www.zqtcl.cn/news/788928/

相关文章:

  • 四川省建设厅网站证想开个网站怎样开公司
  • 做机械一般做那个外贸网站电商软件开发费用
  • 网站外链坏处龙岗网站设计信息
  • 郑州网站建设乙汉狮网络搜索优化网络推广
  • Dw做html网站百度推广竞价排名
  • 北京市电力建设公司网站万云网络网站
  • 校园网站开发方案做网站现在用什么语言
  • 网站建设学什么书中联建设集团股份有限公司网站
  • 制作个人业务网站go 做视频网站
  • 域名对网站建设有什么影响吗找人做仿网站
  • 网站建设翻译谁提供爱心代码html简单
  • 上海专业网站建站公司asp.net商务网站 包括哪些文件
  • 网站制作的重要流程营销团队找产品合作
  • 网站治做啊app易居销售系统
  • 定制跟模板网站有什么不一样如何做网站的订阅
  • 黑龙seo网站优化做网站,图片显示不出来
  • aspcms网站无法打开东莞网站推广方案
  • aspcms企业网站模板互联网推广模式有哪些
  • 高端 网站设计公司怎样开通微信公众号平台
  • 陕西省建设监理协会网站证书城乡建设管理局网站
  • 网站建设价目表建设商城网站报价
  • 天河企业网站建设杭州网站开发与设计
  • 涂料厂做网站有用吗廊坊关键词快速排名
  • 免费编程网站个人博客网站如何做SEO
  • 动漫做美食的视频网站佛山网站建设公司88
  • 衡水移动网站建设网站定制论坛
  • 装修网站模板源码网站上传不了
  • 南昌企业网站开发宁波seo怎么做推广渠道
  • 查找公司信息的网站小蝌蚪视频网络科技有限公司
  • 爆破wordpress密码河北seo基础入门教程