1770: 按鈕控制彩燈實驗
submit page summary time limit: 1 sec memory limit: 128 mb submitted: 295 solved: 106
description
應教學安排,yy又去開心的做電學實驗了。實驗的內容分外的簡單一串按鈕通過程式設計了的eeprom可以控制一串彩燈。然而選擇了最low的一種一對一的控制模式,並很快按照實驗指導書做完實驗的yy馬上感覺到十分無趣。於是他手指在一排按鈕上無聊的滑來滑去,對應的彩燈也不斷的變化著開關。已知每乙個按鈕按下會改變對應乙個彩燈的狀態,如此每次yy滑動都會改變一串彩燈的狀態。現已知彩燈最初的狀態,已經yy n次無聊的滑動的起點和終點l,r。現問彩燈最終的狀態。
input
有多組資料。
每組資料第一行,n(1<=n<=10^5)代表彩燈串長度,t(0<=t<=10^5)代表yy滑動的次數
第二行n個數(0表示滅1表示亮)給出n個彩燈的目前的狀態。
之後t行每行兩個數li,ri(1<=li<=ri<=n)代表每次滑動的區間。
output
每組用一行輸出最終的串的狀態,格式見樣例。
sample input
3 2
1 0 1
1 3
2 3
sample output
0 0 1
hint
source
ottff
給定初始01狀態,然後每次區間覆蓋後狀態反轉,0變1,1變0,問終止狀態
可以轉化為被覆蓋了多少次,奇數變,偶數不變。
利用樹狀陣列,那麼對於每乙個l,r,區間[1,r]+1,區間[1,l-1]-1,然後對於每個點getsum即可
然而並不需要那麼複雜
可以對l,r,f[l]++,f[r+1]–,每次到達乙個位置就res+=f[i],然後判斷res奇偶性即可
第一種做法(樹狀陣列)
#include
#include
#include
#include
using
namespace
std;
const
int maxn=1e5+10;
int n,t,ax[maxn],c[maxn];
int lowbit(int x)
void add(int x,int val)
int sum(int x)
int main()
for(int i=1;i<=n;i++)
printf("\n");
}return
0;}
第二種做法:
#include
#include
#include
const
int n =1e5+7;
int a[n],n,m,f[n],l,r;
int main()
int sum=0;
for(int i=1;i<=n;++i)
for(int i=1;i<=n;++i)printf("%d ",a[i]);
printf("\n");
}}
177 單詞替換
題目描述 你需要輸出替換之後的句子。示例 1 輸入 dict 詞典 cat bat rat sentence 句子 the cattle was rattled by the battery 輸出 the cat was rat by the bat 注 輸入只包含小寫字母。1 字典單詞數 1000...
careercup 中等難度 17 7
17.7 給定乙個整數,列印該整數的英文描述 例如 one thousand,two hundred thirty four 解法 舉個例子,在轉換19 323 984時,我們可以考慮分段處理,沒三位轉換一次,並在適當的地方插入 thousand 千 和 million 百萬 也即,convert ...
177 有限制的素數
輸入檔案 qprime.in 輸出檔案 qprime.out 簡單對比 時間限制 1 s 記憶體限制 128 mb farmer john 開始給奶牛們標記上素數的牌子,貝茜注意到了這一切,她對各種數的牌子很好奇。請幫助貝茜算出從a到b 1 a b 4,000,000 b a 1,000,000 b...