題意:給出n*m的空地,每個空地上給出的數字是用方塊疊起來的高度,在三維空間求出這些用立方體堆起來的表面積,底面積不算。
掃三個方向就行,正檢視和側檢視算出來的值都要乘以2。
**如下:
#include#include#include#include#includeusing namespace std;
#define n 110
#define inf 2000000000000000ll
int a[n][n],b[n];
int main()
int sum1=0;
for(i=1;i<=m;i++)
if(a[j][i]x)
if(a[i][j]==x) continue;
if(a[i][j]傳送門
題意:給出乙個序列,問能不能拿走乙個數使數列單調。
注意常數列也是單調數列..一開始我就判斷像2 3 1中3這種凸起或者凹下去的轉折點,因為這種轉折點最多只能有2個,然後就對這最多兩個轉折點判斷,但是轉折點有轉成常數列,這種就是特殊的轉折點,我就死在這上面了233333。比如1 2 33 3 3這個資料,要對第乙個3進行判斷他和a[i-2]的關係....
做法先判斷這個數列是否單調遞增或者單調遞減,單增單減是可以的情況。
其次是對兩種轉折點進行處理,這兩種轉折點都不能多於1個,否則無論這麼拿都構成不了單調序列。
一種是突然減小的轉折點,要判斷 這個點a[i]是否同時出現a[i+1]a[i]的情況,畫圖看看就這道這種情況無論去掉這轉折點還是轉折點的前乙個點都不能構成單調序列。
一種是突然增大的轉折點,情況更上乙個反過來考慮。
**如下:
#include#include#include#includeusing namespace std;
#define n 100010
#define inf 2000000000000000ll
int a[n];
int main()
else
}if(flag)
else
}if(flag)
vis++;
if(a[i+1]>a[i-1]&&a[i]>a[i-2]) }}
if(flag)
// cout《傳送門
題意:給出n個數,求出(a[i]+a[j])^a[k]最大並且i!=j!=k
他給了9m時間,直接暴力求能在5m過
**如下:
#include#include#include#include#includeusing namespace std;
#define n 1010
#define inf 2000000000000000ll
int a[n],b[n];
int main()
printf("%d\n",max);
}return 0;
}
2023年icpc瀋陽賽區C題
簡單的計數題,題意是讓你對乙個1到n的乙個排列執行k次插入排序,排完序以後要滿足最長上公升遞增子串行的長度至少為n 1,問這樣的排列由多少種。做的時候是這樣做的,首先考慮前k個正好是前k個,然後後面的最長上公升子串行大於等於n k 1的排列的個數有多少,剛開始手推,發現推出來的公式是錯誤的,然後這個...
2017ICPC網路賽北京賽區 I題
2017icpc網路賽北京賽區 i題 描述 you are given a list of integers a0,a1,a2 k 1.you need to support two types of queries output minx,y l,r let ax y.輸入 the first l...
2023年ACM ICPC瀋陽賽區 B題
題意 按順序給你n個字串 n 500 每個字串長度不超過2000。求最大到第幾個字串,前面沒輸入它的子串。時限3s 用於判斷字串ss是否是s的子串。如果是,則該函式返回ss在s中首次出現的位址 否則,返回null。再根據這個題目性質 若前乙個串不是這乙個串的子串,則答案至少為這個串的位置。然後顯然這...