時間限制: 1 sec 記憶體限制: 128 mb
[提交] [狀態]
題目描述
第二天早晨,跑男隊員們來到了風景秀麗的揚州瘦西湖,剛下車他們全都尖叫起來,沒錯,就是他們最怕的「趾壓板」:
一塊超級大的趾壓板被分成了n行n列,每個小格仔上都有乙個數字。遊戲規則是:觀察一段時間後,把所有的數字拿掉,分別抽取乙個行號i和列號j,說出這個位置上原來的數字是多少,如果不能說出正確的值,就要接受處罰,光腳從左上角1沿著順序從小到大走到這個數字所在位置。
「撿漏王」王祖藍思考了一會,馬上找到了其中的奧秘,你呢?
輸入
輸入共一行,包含三個整數n,i,j,每兩個整數之間用空格隔開,分別表示矩陣大小、待求的數所在的行號和列號。
輸出
輸出共一行,包含乙個整數,表示相應矩陣中第i行和第j列的數。
樣例輸入 copy
7 4 3
樣例輸出 copy
18提示
對於50%的資料,1≤n≤100;
對於100%的資料,1≤n≤30,000,1≤i≤n,1≤j≤n。
主要是太菜了所以只會很笨的找規律
以下是分析這個題的三個過程:
1.
因為以前做過類似的,是計算上三角的乙個題,所以很自然的可以想到先判斷這個數的斜對角線上對應的第一列的數是多少,再根據奇數行相減,偶數行相加可以很容易的算出一部分數。這樣可以拿到55分。
2.
這樣只適合於i+jn的話,會一直延伸計算,這樣的第一列所對應的數的行數就會大於n。
然後可以發現,如果i+j-1>=n 時,是跟最後一行的數在同乙個斜對角線上,這時候也是奇數列相減,偶數列相加的規律,可以算出上三角的一部分數。這樣是91。
坑就坑在91,為什麼偶數行的樣例不能多一點(自閉.jpg)
3.
隨便試乙個偶數就會發現上述規律不存在了,然後也就有了**裡的
if
(k%2
==n%
2)
判斷是不是跟n同奇偶性。
歷經波瀾啊簡直
**:
#include
typedef
long
long ll;
using
namespace std;
intmain()
if((i+j-1)
%2) res-
=j-1
;else res+
=j-1
; cout<
}else
/// cout
if(tmp1%
2==n%
2) tmp-
=n-i;
else tmp+
=n-i;
cout<
}return0;
}
放乙個更簡潔的**
巨巨部落格:傳送門
#include
using
namespace std;
intmain()
ans=sum1;
//cout
(tmp%2==
0)else
cout<
return0;
}
LightTools 切趾角度設定
lighttools 切趾角度設定 文字檔案的第一行必須為 spheremesh冒號空格1空格20空格0空格0空格360空格90,如果第一行有乙個字元錯了,那麼後面載入該檔案時,軟體就會報錯,其中spheremesh是檔案的型別名稱 可以認為它就是配光曲線的定義 1表示1列資料 我們所要描述的是對稱...
UPC 方格取數
題目描述 在 n 行 m 列的方格矩陣中,每個方格都包含乙個數字。小明可以從任意方格出發開始移動。每次移動可以移到與當前方格有一條邊相鄰的方格 即向上 下 左或右方向移動 1 格,且不能移出邊界 除此之外,你移動到的方格中的數字必須比當前方格中的數字更大。請你幫助小明程式設計規劃移動路徑,使路徑上經...
UPC 購買巧克力(貪心)
時間限制 1 sec 記憶體限制 128 mb 提交 狀態 題目描述 shoi這次科技競賽取得了好成績,想慶祝一番,他手頭總共有m元,購買巧克力來讓同學分享快樂。他在sh商店逸擇購買,在巧克力商品櫃中共有n塊巧克力,每塊巧克力的 是a i 元 商家為了 提供給他k張優惠券,使用方法是 對於每塊巧克力...