摘要:
假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行n次操作,每次操作将某一位置 x 上的数加 c 。 接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r]之间的所有数的和。 #include<iostream> #include<vecto 阅读全文
摘要:
1.一个整数的二进制形式的第k位是1还是0。 int find_k(int num , int k){ return ((num >> k) & 1); } 2.一个整数的二进制形式中的lowbit()操作。 int lowbit(int x){ return x & - x; } 阅读全文
摘要:
#include<iostream> using namespace std; int num[100010]; void find_k(int l , int r , int k){ if(l >= r) { cout << num[l]; return ; } int mid = (l + r 阅读全文
摘要:
#include<iostream> using namespace std; int num[100010], temp[100010]; long long count( int l , int r){ if(l >= r) return 0; long long sum = 0; int mi 阅读全文
摘要:
给定一个浮点数n,求它的三次方根. #include<iostream> #include<cmath> using namespace std; int main(){ double n , m , l , r; bool tar = false; cin >> n; if(n < 0) { n 阅读全文
摘要:
输入一个n行m列的整数矩阵,再输入q个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1)和(x2,y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上c。 #include<iostream> using namespace std 阅读全文
摘要:
输入一个长度为 n的整数序列。 接下来输入m个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r]之间的每个数加上 c。 #include<iostream> using namespace std; int num[100010] , hou[100010]; void insert( 阅读全文
摘要:
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。 #include<iostream> using namespace std; int num[1010][1010] , qian 阅读全文
摘要:
#include<iostream> #include<vector> using namespace std; vector <int> add(string a , string b ){ vector <int> a1 , b1; for(int j = a.length() - 1 ; j 阅读全文
摘要:
查找左边界 ... 查找右边界 ... 数的范围 #include<iostream> using namespace std; int num[100010]; int main(){ int n , q; cin >> n >> q; for(int i = 0 ; i < n ; i ++) 阅读全文