hdu--4902--线段树

题意 前面一段废话= =

这题 最有意思的应该是出题人 是clj

这题的时限放的太宽了 给了15s 我也是醉了

区间更新。

  1 #include <iostream>
  2 #include <algorithm>
  3 using namespace std;
  4 
  5 const int size = 200010;
  6 int a[size];
  7 struct data
  8 {
  9      int L , R , maxVar;
 10      bool flag;
 11 }tree[size<<2];
 12 
 13 int gcd( int x , int y )
 14 {
 15      return x % y == 0 ? y : gcd( y , x%y );
 16 }
 17 
 18 void pushDown( int rt )
 19 {
 20     tree[rt<<1].maxVar = tree[rt<<1|1].maxVar = tree[rt].maxVar;
 21     tree[rt<<1].flag = tree[rt<<1|1].flag = true;
 22     tree[rt].flag = false;
 23 }
 24 
 25 void pushUp( int rt )
 26 {
 27     tree[rt].maxVar = max( tree[rt<<1].maxVar , tree[rt<<1|1].maxVar );
 28 }
 29 
 30 void build( int rt , int L , int R )
 31 {
 32     int M = ( L + R ) >> 1;
 33     tree[rt].L = L , tree[rt].R = R;
 34     tree[rt].flag = false;
 35     if( L==R )
 36     {
 37         tree[rt].maxVar = a[L];
 38         tree[rt].flag = true;
 39         return ;
 40     }
 41     build( rt<<1 , L , M );
 42     build( rt<<1|1 , M+1 , R );
 43     pushUp( rt );
 44 }
 45 
 46 void update( int rt , int L , int R , int x , int op )
 47 {
 48     int M = ( tree[rt].L + tree[rt].R ) >> 1;
 49     if( tree[rt].L == L && tree[rt].R == R )
 50     {
 51         if( op==1 )
 52         {
 53             tree[rt].maxVar = x;
 54             tree[rt].flag = true;
 55             return;
 56         }
 57         else
 58         {
 59             if( tree[rt].maxVar<=x )
 60                 return ;
 61             if( tree[rt].flag && tree[rt].maxVar>x )
 62             {
 63                 tree[rt].maxVar = gcd( tree[rt].maxVar , x );
 64                 return;
 65             }
 66         }
 67     }
 68     if( tree[rt].flag )
 69     {
 70         pushDown( rt );
 71     }
 72     if( R<=M )
 73     {
 74         update( rt<<1 , L , R , x , op );
 75     }
 76     else if( L>=M+1 )
 77     {
 78         update( rt<<1|1 , L , R , x , op );
 79     }
 80     else
 81     {
 82         update( rt<<1 , L , M , x , op );
 83         update( rt<<1|1 , M+1 , R , x , op );
 84     }
 85     pushUp( rt );
 86 }
 87 
 88 void solve( int rt , int L , int R )
 89 {
 90     int M = ( tree[rt].L + tree[rt].R ) >> 1;
 91     if( L == R )
 92     {
 93         cout << tree[rt].maxVar << " ";
 94         return ;
 95     }
 96     if( tree[rt].flag )
 97     {
 98         pushDown( rt );
 99     }
100     solve( rt<<1 , L , M );
101     solve( rt<<1|1 , M+1 , R );
102 }
103 
104 int main()
105 {
106      cin.sync_with_stdio(false);
107      int t , n , m , op , L , R , x;
108      cin >> t;
109      while( t-- )
110      {
111           cin >> n;
112           for( int i = 1 ; i<=n ; i++ )
113                cin >> a[i];
114           build( 1 , 1 , n );
115           cin >> m;
116           while( m-- )
117           {
118                   cin >> op >> L >> R >> x;
119                   update( 1 , L , R , x , op );
120           }
121           solve( 1 , 1 , n );
122           cout << endl;
123      }
124      return 0;
125 }
View Code

 

明天 是个特殊的日子 。。

 

转载于:https://www.cnblogs.com/radical/p/4162103.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(五) 面向对象类设计原则

1. 开闭原则&#xff08;the Open Closed Principle OCP&#xff09; 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原则同样适合于非面向对象设计的方法&#xff0c;是软件工程 设计…

160 - 30 cracking4all.1

环境 Windows XP sp3 工具 exeinfope ollydbg 查壳 无壳的VB程序 测试 这个serial藏得比较里面&#xff0c;多点几下才能看到 字符串搜索&#xff1a; 00403338 . 50 push eax ; /var18 00403339 . 51 …

MVC5 + EF6 入门完整教程

MVC5 EF6 入门完整教程 原文:MVC5 EF6 入门完整教程第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比&#xff0c;增加了很多"约定"。 直接讲这些 "约定" 会让人困惑&#xff0c;而且东西太多容易忘记。 和微软官方教程不同&#xff0c…

160 - 31 cracking4all.2

环境 Windows xp sp3 工具 exeinfope ollydbg 查壳 无壳VB程序 测试 输入1234567 OD载入字符串搜素&#xff0c;往上翻就看到这里&#xff0c;我截取部分片段&#xff1a; 00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial长度…

160 - 32 genocide1

环境 Windows xp sp3 工具 upx exeinfope ollydbg 查壳 发现是upx壳&#xff0c;手脱的话会不干净&#xff0c;影响OD分析。 所以就直接用 upx -d 脱了 手脱&#xff1a; upx -d: 用upx -d 脱的版本进行分析。 第一次运行时显示这个&#xff1a; 缺少Reg.dat…

160 - 33 Cruehead.1

环境 windows xp sp3 工具 exeinfo pe ollydbg 查壳 无壳的汇编程序&#xff08;OD载入的出来的&#xff09; 测试 当name输入为数字时&#xff0c;会弹出两次错误框。 OD载入搜字符串&#xff0c;发现有两个地方&#xff1a; 0040134D /$ 6A 30 push 0x…

英文系统上网页内容乱码的解决

今天随便写了一段html 代码示例&#xff0c;代码如下&#xff1a; <html lang"zh-cn"> <head> </head> <body> <h1>HTML 教程目录</h1> <ul> <li><a href"#C1">第一章</a></li> <li…

160 - 34 Cruehead.3

环境 windows xp sp3 工具 1.exeinfo pe 2.ollydbg 3.WinHex 查壳 和上一个一样&#xff0c;OD载入判断出 测试 运行后发现是没有任何提示&#xff0c;而且没有输入serial的窗口&#xff0c;通过任务管理器可以看出程序的名称写有“Uncracked”&#xff0c;可以猜测…

160 - 35 cupofcoffe.1

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD载入后可以看出是VB程序 测试 输入&#xff1a;12345678 显示的内容发生了改变&#xff0c;也不影响查找字符串。 004FEC14 > \8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] 004FEC17 . 51 …

ecshop后台增加模板页的方法

CShop的动态模板机制是一个非常灵活的系统,管理员可以在后台根据自己的要求调整模板模块的显示位置。本文详细讲解了如何修改ECSHOP内部结构使得用户可以添加自己的模板页从而方便灵活的使用系统自带的模板系统和广告位系统。 如下图所示 可以看到ECShop支持设置的模板一共如上…

160 - 36 cupofcoffe.2

环境 Winows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD载入后看出是VB程序 测试 输入&#xff1a;12345678 继续OD搜字符串&#xff1a; 00521688 . 68 60054500 push cupofcof.00450560 ; UNICODE ".........." 0052168D …

160 - 37 CyberBlade.1

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD载入是VB程序。 测试 OD载入直接搜字符串。 这个是当输入为空时会弹出消息框告诉你要输入9个字符。 0040E005 > \8B4D E4 mov ecx,dword ptr ss:[ebp-0x1C] 0040E008 . 51 push…

160 - 38 CyberBlade.2

环境 Windows xp sp3 工具 1.VBExplorer 2.ollydbg 查壳 OD载入往上翻可以看出是vb程序&#xff0c;看到 00401042 .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>] ; MSVBVM50.MethCallEngine 可以知道是p-code的了 测试…

160 - 39 damn

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD加载就知道有壳了&#xff0c;可以esp定律直接脱掉 exeinfoPE查壳&#xff1a; 测试 点击LOCKED图片会弹出消息框&#xff0c;Register注册按钮无法点击&#xff01; 猜测Register按钮会在输入正确的nam…

160 - 40 DaNiEl-RJ.1

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 无壳Delphi程序 测试&#xff1a; 按照说明点到这个注册窗口。 OD载入搜字符串&#xff0c;直接可以定位到这里 0042D4A8 /. 55 push ebp 0042D4A9 |. 8BEC mov ebp,esp 0042D4…

IOS详解TableView——选项抽屉(天猫商品列表)

在之前的有篇文章讲述了利用HeaderView来写类似QQ好友列表的表视图。 这里写的天猫抽屉其实也可以用该方法实现&#xff0c;具体到细节每个人也有所不同。这里采用的是点击cell对cell进行运动处理以展开“抽屉”。 最后完成的效果大概是这个样子。 主要的环节&#xff1a; 点击…

Unicode与JavaScript详解 [很好的文章转]

上个月&#xff0c;我做了一次分享&#xff0c;详细介绍了Unicode字符集&#xff0c;以及JavaScript语言对它的支持。下面就是这次分享的讲稿。 一、Unicode是什么&#xff1f; Unicode源于一个很简单的想法&#xff1a;将全世界所有的字符包含在一个集合里&#xff0c;计算机只…

编辑器使用说明

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来&#xff0c;用它写博客&#xff0c;将会带来全新的体验哦&#xff1a; Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰…

Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印

要运行的程序&#xff1a; import os from multiprocessing import Process import timedef run_proc(name):print(Child process %s (%s) Running...%(name,os.getpid()))# time.sleep(5)if __name__ __main__:print("Show Start:")print(Parent process %s. % os…

python Requests登录GitHub

工具&#xff1a; python 3.6 Fiddler4 所需要的库&#xff1a; requests BeautifulSoup 首先抓包&#xff0c;观察登录时需要什么&#xff1a; 这个authenticity_token的值是访问/login后可以获取&#xff0c;值是随机生成的&#xff0c;所以登录前要获取一下。 注…