藍橋杯 生物晶元 day13

2021-10-19 22:33:39 字數 1096 閱讀 2976

題目

題目描述

x 博士正在研究一種生物晶元,其邏輯密集度、容量都遠遠高於普通的半導體晶元。

博士在晶元中設計了 nn 個微型光源,每個光源操作一次就會改變其狀態,即:點亮轉為關閉,或關閉轉為點亮。

這些光源的編號從 1 到 nn,開始的時候所有光源都是關閉的。

博士計畫在晶元上執行如下動作:

所有編號為 2 的倍數的光源操作一次,也就是把 2 4 6 8 \cdots⋯ 等序號光源開啟;

所有編號為 3 的倍數的光源操作一次, 也就是對 3 6 9 \cdots⋯ 等序號光源操作,注意此時 6 號光源又關閉了。

所有編號為 4 的倍數的光源操作一次。

直到編號為 nn 的倍數的光源操作一次。

…x 博士想知道:經過這些操作後,某個區間中的哪些光源是點亮的。

輸入描述

輸入 3 個用空格分開的整數:n l r (l總結

完全平方數的因子個數為奇數,而操作次數奇數次的開關就是開著的,因子總是成對出現,因此只有相等的時候才會出現奇數個因子的情況。

光源總數為r-l+1(第乙個燈沒有被熄滅也沒有亮起來) 。

如果我們把 [ l , r ]這個去區間裡的所有數開根號,這些數必然 ∈ [sqrt(l), sqrt®] ,對於這各區間裡的每乙個整數,必有乙個完全平方數與之對應,

①因此完全平方數個數tot即為 (int)sqrt® - (int)sqrt(l),

②最後判斷l是不是完全平方數,如果是,tot++。

標頭檔案:#include

pow() 函式用來求 x 的 y 次冪(次方),x、y及函式值都是double型 ,其原型為:

double pow(double x, double y); ,pow()用來計算以x為底的y次方值,然後將結果返回。

值得注意的是,一幕資料非常大,就算一層for迴圈好像也會超時…

pass**

#include

#include

//using namespace std;

intmain()

藍橋杯 生物晶元

x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...

藍橋杯 生物晶元 思維

x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作一次,...

藍橋杯 生物晶元 Python

題目 x博士正在研究一種生物晶元,其邏輯密集度 容量都遠遠高於普通的半導體晶元。博士在晶元中設計了 n 個微型光源,每個光源操作一次就會改變其狀態,即 點亮轉為關閉,或關閉轉為點亮。這些光源的編號從 1 到 n,開始的時候所有光源都是關閉的。博士計畫在晶元上執行如下動作 所有編號為2的倍數的光源操作...