1003 真實的謊言

2022-09-01 08:00:07 字數 1308 閱讀 4000

1003 真實的謊言

這是乙個非常有趣的題目,題目描述很簡練,但卻卡住了很多人。其實,這個題並不難,也沒有什麼需要注意的地方,只要有了思路,基本就正確了。但是,切忌一一枚舉,這樣的結果只有乙個——tle。不過只要有了列舉這個想法,在適當思考,加以優化,基本就能ac了。首先,我們來說下暴力列舉的思路:定義乙個結構體儲存輸入,輸入完成後,執行

bool

flag=0

;for

(inti=

n-1;i

>=0;i

--)}if

(flag==0

) cout

<

"<<

endl;

當然,這樣做的效率是很低的,是會tle的,但是在這卻能讓我們從中得到啟示:外層迴圈:我們假設有 i 個人說真話,我們就需要利用內層迴圈遍歷陣列,檢查是否是有 i 個人說真話,如果 i 在區間內,就計數加1,這樣,通過n次遍歷,我們就可以找出包含了 i 的區間個數,如果包含 i 的區間個數等於 i ,那麼就有 i 個人說了真話。又我們是 i :  n-1一》0 ,所以一旦成立,那麼就是我們的最優解,如果所有均不成立,那麼flag=0,輸出-1。既然如此,我們完全可以在輸入過程中完成遍歷處理:設乙個陣列count[100001],在輸入過程中加以處理,

int

count[

100001]=

,a,b;

for(

inti=0

;i<

n;i++

)

這個過程中,我們統計了包含 i 的區間個數 count[i],最後我們只需要從大到小同上檢索一遍,就能得到正確解了。

view code

1

#include

<

iostream

>

2#include

<

cstdio

>

3using

namespace

std;

4int

main()

5,b,c,m,i,j,k;

10cin

>>

n;m=

n;11

for(i=0

;i<

n;i++)12

15for(i=

n;i>0;i

--)16if

(a[i]

==i)

17if

(flag==0

) cout

<

"<<

endl;18}

19}20

真實的謊言 呂震宇

真實的謊言 我是一名計算機教師,我的任務就是教授程式語言 資料庫技術,培養學生對計算機知識的興趣,然而昨天與乙個學生的對話卻讓我再也抑制不住埋在內心裡的情緒,去揭露隱藏在計算機華麗外衣之下的漂亮的真實的謊言。這兩年,計算機培訓可以說是比比皆是。程式設計師培訓 軟體工程師培訓 軟體認證的廣告充斥了大街...

真實的謊言 桌面虛擬化(一)

當我第一次使用vmware workstation和virtual pc得時候,覺得異常神奇,覺得怎麼可能在一台客戶機上能夠同時跑多個作業系統,多個個人的桌面。桌面虛擬化讓我們的桌面可以在同一時間展現給我們多個世界,這虛擬的世界,確實實實在在實現在我們得眼前。我覺得桌面虛擬化的確是乙個非常好得技術,...

真實的謊言? 蘋果官方對業績下滑回應的深層剖析

大當家的和二當家的看法不一,謠言是否是導致業績下滑的主要原因?背後是否還有更深更複雜的原因呢?蘋果的三大業務 iphone ipad和mac營收構成總佔比達86 可以說,這三大業務直接影響到蘋果的整體業績。在q3季度 筆記本銷量同比增8 至301萬台,營收同比增3 至36.46億美元,但是台式電腦銷...