秋蟬鳴泣之時

奇怪的題目背景

所誤入的 是回憶的教室

所響起的 是通向絕望的計時器

所到達的 是開始的結束

你 能相信嗎?

題目背景

最近禮奈醬學會了線段樹和樹狀數組兩種數據結構

由于禮奈醬上課聽的很認真,所以她知道

樹狀數組常見的操作是 單點加區間求和

線段樹常見的操作是 區間加區間求和

但她認為自己已經不是小學生了,覺得只能維護加法標記這件事簡直太蠢了~

所以她將題目加強了一下,但她發現自己不會寫這題的標程了

因為?rina?rina 醬非常可愛,所以你要幫她寫這題的標程

題意描述

禮奈給了你一列數(n?n 個)

要求支持以下兩類操作共m?m 次

  1. 區間求和?[L,R]?[L,R] 即∑?R?i=L?A?i??∑i=LRAi
  2. 區間開平方[L,R]?[L,R] 即將區間內每一個數A?i??Ai 修改為?A?i???????√??Ai?向下取整

輸入輸出格式

第一行?n?n

第二行?m?m

第三行n?n 個數 表示?A?i??Ai

接下來m?m 行

每行三個數?op,L,R?op,L,R

op=1?op=1 為1操作

op=2?op=2 為2操作

對于每次1操作,請輸出一行答案

樣例輸入

4
1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4

樣例輸出

101
11
11

數據范圍

所有數據點保證

n,m2?10?6?,A?i?10?9??n,m≤2?106,Ai≤109

最多開方十次,開完的就跳過

#include <bits/stdc++.h>using namespace std;
#define int long long
int n,m;
int l[10005],r[10005];
int a[100005]; 
int f[10005];
int w[100005];signed main()
{scanf("%lld",&n);int len=sqrt(n);r[0]=0;int cnt=0;while(r[cnt]<=n){cnt++;l[cnt]=r[cnt-1]+1;r[cnt]=l[cnt]+len;}r[cnt]=n;for(int i=1;i<=cnt;++i){int flag=0;for(int j=l[i];j<=r[i];++j){w[j]=i;if(a[j]!=1){flag=1;}}if(flag==0){f[i]=1;}}for(int i=1;i<=n;++i){scanf("%lld",&a[i]);}scanf("%lld",&m);int x,y,z;for(int i=1;i<=m;++i){scanf("%lld%lld%lld",&x,&y,&z);if(x==0){if(w[y]==w[z]){for(int j=y;j<=z;++j){a[j]=floor(sqrt(a[j])*1.0);}continue;}for(int j=y;j<=r[w[y]];++j){a[j]=floor(sqrt(a[j]*1.0));}   for(int j=l[w[z]];j<=z;++j){a[j]=floor(sqrt(a[j]*1.0));}for(int j=w[y]+1;j<=w[z]-1;++j){if(f[j]==1){continue;}else{for(int k=l[j];k<=r[j];++k){a[k]=floor(sqrt(a[k]*1.0));}int sum=0;for(int k=l[j];k<=r[j];++k){if(a[k]==1){sum++;}}if(sum==r[j]-l[j]+1){f[j]=1;}}}}else{int ans=0;if(w[y]==w[z]){for(int j=y;j<=z;++j){ans+=a[j];}printf("%lld\n",ans);continue;} if(f[w[y]]==1){ans+=r[w[y]]-y+1;}else{for(int j=y;j<=r[w[y]];++j){ans+=a[j];}}if(f[w[z]]==1){ans+=z-l[w[z]]+1;} else{for(int j=l[w[z]];j<=z;++j){ans+=a[j];}}for(int j=w[y]+1;j<=w[z]-1;++j){if(f[j]==1){ans+=r[j]-l[j]+1;}else{for(int k=l[j];k<=r[j];++k){ans+=a[k];}}}printf("%lld\n",ans);}}return 0;
}

  

轉載于:https://www.cnblogs.com/ainiyuling/p/11200653.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247460.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

對淺拷貝與深拷貝的研究

淺拷貝只復制指向某個對象的指針&#xff0c;而不復制對象本身&#xff0c;新舊對象還是共享同一塊內存。 淺拷貝的實現方式 Object.assign()&#xff1a;需注意的是目標對象只有一層的時候&#xff0c;是深拷貝Array.prototype.concat()Array.prototype.slice()深拷貝就是在拷…

:nth-child(n)與:nth-of-type(n)為啥顯示不對呢

首先是二者的區別 :nth-child(n) 是選擇父元素的第n個子元素。 :nth-of-type(n) 是選擇父元素的第n個同類型的子元素 舉個例子&#xff1a; <div class"read"><h1>title</h1><p>paragraph1</p><p>paragraph2</p> <!…

css3 box-shadow陰影(內外陰影與發光)講解

基礎說明&#xff1a; 外陰影&#xff1a;box-shadow: X軸 Y軸 Rpx color; 屬性說明&#xff08;順序依次對應&#xff09;&#xff1a; 陰影的X軸(可以使用負值) 陰影的Y軸(可以使用負值) 陰影模糊值&#xff08;大小&#xff09; 陰影的顏色 內陰影&#xff1a;b…

Apress Pro Android 2

Apress Pro Android 2轉載于:https://www.cnblogs.com/gavinhughhu/archive/2010/03/21/1690792.html

Query意圖分析:記一次完整的機器學習過程(scikit learn library學習筆記)

所謂學習問題&#xff0c;是指觀察由n個樣本組成的集合&#xff0c;并根據這些數據來預測未知數據的性質。 學習任務&#xff08;一個二分類問題&#xff09;&#xff1a; 區分一個普通的互聯網檢索Query是否具有某個垂直領域的意圖。假設現在有一個O2O領域的垂直搜索引擎&…

使用 vue-cli 開發多頁應用

修改的webpack配置文件 全局配置 修改 webpack.base.conf.js 打開 ~\build\webpack.base.conf.js &#xff0c;找到entry&#xff0c;添加多入口 entry: {app: ./src/main.js,app2: ./src/main2.js,app3: ./src/main3.js, }, 運行、編譯的時候每一個入口都會對應一個Chunk …

深度學習系統相比較傳統的機器學習系統,針對常見的分類問題,精度究竟能有多大提升?...

來源&#xff1a;知乎原文鏈接&#xff1a;深度學習系統相比較傳統的機器學習系統&#xff0c;針對常見的分類問題&#xff0c;精度究竟能有多大提升&#xff1f; 問題&#xff1a; 我現在手頭有一個binary classification的問題。數據量在一百萬左右。每個sample都是一個14個f…

遠程鏈接錯誤:這可能是由于credssp加密oracle修正

此錯誤解決辦法 1.WinR 輸入regedit打開注冊表 找到對應的以下目錄HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 此時如果System下沒有CredSSP時創建CredSSP沒有Parameters時,創建Parameters 創建方法:右建>>新建>>項 2.在Para…

SpringBoot入門最詳細教程

https://www.jianshu.com/p/af3d5800f763 網上有很多springboot的入門教程&#xff0c;自己也因為項目要使用springboot&#xff0c;所以利用業余時間自學了下springboot和springcloud&#xff0c;使用下來發現springboot還是挺簡單的&#xff0c;體現了極簡的編程風格&#xf…

通過Vue CLI3 快速創建Vue項目并部署到tomcat

1、前提 首先你要安裝好nodejs和yarn,直接在官網下載安裝包&#xff0c;一鍵安裝即可&#xff0c;不需要什么環境配置&#xff0c;我安裝的是最新版本&#xff08;node-v10.13.0、yarn-1.12.3&#xff09; 2、安裝 同時寫Vue CLI 3和Vue CLI 2 的原因是官方默認的是3&#x…

簡述區塊鏈(1)- 也許只有這一篇

一、嘮叨兩句 最近一直在考慮一個事情&#xff0c;就是怎么給不太了解技術的人講清楚區塊鏈。我先試著寫下來&#xff0c;然后在逐步打磨吧&#xff0c;目標就是讓哪些說看區塊鏈看的云里霧里的同學能對區塊鏈有一些認知。 二、定義 簡單的給區塊鏈下個定義&#xff1a;基于加密…

Vue CLI 3.0腳手架如何在本地配置mock數據json

前后端分離的開發模式已經是目前前端的主流模式&#xff0c;至于為什么會前后端分離的開發我們就不做過多的闡述&#xff0c;既然是前后端分離的模式開發肯定是離不開前端的數據模擬階段。 我們在開發的過程中&#xff0c;由于后臺接口的沒有完成或者沒有穩定之前我們都是采用…

python 通過下載包setup.py安裝模塊

下載安裝包&#xff0c;并解壓到相應的位置 1、打開cmd 2、到達安裝目錄 3、python setup.py build 4、python setup.py install 轉載于:https://www.cnblogs.com/liuchunxiao83/p/11207340.html

webpack之externals操作三部曲--正確的姿勢

1.作用 首先webpack提供這個externals選項作用是從打包的bundle文件中排除依賴。換句話說就是讓在項目中通過import引入的依賴在打包的時候不會打包到bundle包中去&#xff0c;而是通過script的方式去訪問這些依賴。 2.怎么用&#xff1f; 以jquery為例子&#xff0c;目的是在…

Anaconda3自帶jupyter

1、cmd命令行中輸入 JupyterNotebook 2、系統自動調起下面頁面&#xff08;注冊端口沖突是打不開的&#xff09; 轉載于:https://www.cnblogs.com/liuchunxiao83/p/11207385.html

python 的按位與 或 異或 運算

符號 描述 運算規則 by MoreWindows & 與 兩個位都為1時&#xff0c;結果才為1 &#xff08;統計奇數&#xff09; | 或 兩個位都為0時&#xff0c;結果才為0 &#xff08;統計偶數&#xff09; ^ 異或 兩…

理解Shadow DOM

1. 什么是Shadow DOM? Shadow DOM 如果按照英文翻譯的話可以理解為 影子DOM, 何為影子DOM呢&#xff1f;可以理解為一般情況下使用肉眼看不到的DOM結構&#xff0c;那如果一般情況下看不到的話&#xff0c;那也就是說我們無法直接控制操縱的DOM結構。 Shadow DOM 它是HTML的一…

046 實例11-自動軌跡繪制

目錄 一、"自動軌跡繪制"問題分析1.1 問題分析1.2 自動軌跡繪制二、"自動軌跡繪制"實例講解2.1 自動軌跡繪制2.2 數據接口定義2.3 數據文件三、"自動軌跡繪制"舉一反三3.1 理解方法思維3.2 應用問題的擴展一、"自動軌跡繪制"問題分析 …

bootstrap-select采坑

bootstrap-select采坑 1.class"selectpicker" 普通的下拉框功能 2.title"請選擇城市名稱" title的作用與palcehoder一樣。 3.select class"selectpicker" multiple selectpicker和multiple屬性的搭配使用可實現多選 4.data-live-search"tru…

對vue虛擬dom的研究

Vue.js通過編譯將template 模板轉換成渲染函數(render ) &#xff0c;執行渲染函數就可以得到一個虛擬節點樹在對 Model 進行操作的時候&#xff0c;會觸發對應 Dep 中的 Watcher 對象。Watcher 對象會調用對應的 update 來修改視圖。這個過程主要是將新舊虛擬節點進行差異對比…