題意:給定n
nn個數和q
qq個詢問,每個詢問包含乙個運算元,如果運算元為1
11,那麼再輸入兩個數p,v
p,vp,
v,使a[p
]=
va[p]=v
a[p]=v
,如果運算元為2
22,輸出讓這個陣列成為0
00陣列的最小次數。
零陣列的定義:你可以讓陣列中非零的數減去某個數x
xx,視為一次操作,直到陣列全部變為0
00分析:只需要計算出陣列中有多少個非0
00的、不相同的數即可。資料範圍為1e9
1e91e
9,所以要用map
mapma
p,注意map
mapma
p不能直接用siz
e(
)size()
size()
題意:給定n#include
#include
using namespace std;
const int n=
1e5+5;
int t,n,q,a[n]
,op,u,v;
int main()
while
(q--
)else
if(op==2)
}}}
nn個數a
aa與n
nn個數b
bb,他們不重複 ,a
aa陣列在上,b
bb陣列在下,現在從a
aa陣列的所有數去配對b
bb陣列的所有數,匹配成功(相等)則連一條線,求線段的交點個數。
分析:求逆序對數量
#include
#include
const int n=
1e5+5;
int t,n,a[n]
,b[n]
,tmp[n]
,x;long long int res;
void merge_sort
(int l,int r)
}while
(i<=mid) tmp[k++
]=a[i++];
while
(j<=r) tmp[k++
]=a[j++];
for(i=l;i<=r;i++
) a[i]
=tmp[i];}
int main()
for(int i=
1;i<=n;i++
)merge_sort(1
,n);
printf
("%lld\n"
,res);}
}
2021春季個人賽 3 補題
題意 給定3個長度為10只由01構成的字串,你可以任意移動01的位置,使得他們最後異或和最大。分析 統計3個字串的01個數。當遇到 001 和 111 的情況就輸出1,否則輸出0。每次需要排序。include.h using namespace std const int n 15 int t ch...
2023年1月30日個人賽補題報告
c題 這個題的資料開到了10 18,很明顯不能暴力。正確的做法是從1到n進行二分查詢,對於每乙個查詢的值進行暴力模擬。之前只是單純的寫過二分演算法,但並沒有在實際做題中應用過。如下 include include include include include using namespace std...
2020 8 10 個人賽補題
include include include include using namespace std char str 1010 int num 30 int main int sum 0 for int i 0 i 26 i if sum 1 大於一則直接輸出 char ch for int i...