我們教練說5題省賽拿牌有希望,然後acm校隊乙個大佬說至少要到6~7題才能拿銅。。。t_t
我a了四題,我隊友a了五題,他把j題a了,我沒在機房打比賽,所以我們隊就不小心分成倆號交了,我j題沒看懂,後來就沒再寫了。相當於我們隊還是a了五道題,我隊友可是大佬~賊強~哈哈哈~j題抽空補上,那就放一下我ac的四個題的題解:
< a >
題意:在乙個序列裡找乙個絕對峰值,要求在該值以前的序列嚴格遞增,該值以後嚴格遞減。
思路:首先你找的這個值,必須是最大值,然後找到最大值以後,再看他左右兩端的單調性。注意如果該序列本身就類似單調,那不滿足題意,本身類似單調意味著,最大值的位置在首位或末位。
本人ac**:
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxx = 1e5 + 7;
const ll inf = 2e9 + 128;
int cas;
int n;
ll a[maxx];
int main()
}if(pos == 1 || pos == n)
bool *** = 1;
for(int i = 1; i < pos; i++)
}for(int i = n; i > pos; i--)
}if(***) puts("yes");
else puts("no");}}
< b >
題意:給兩段序列,在第乙個序列每個元素上加上乙個實數,使得該序列與第二個序列更相近,即相同位置對應的元素變多,求最多相似個數。
思路:通過這題講一下map的基本操作,所謂map,說白了,就是乙個高階陣列,是乙個帶屬性的陣列,宣告方法為
map mp;
意思是,乙個int型的陣列,它有乙個int屬性叫mp。
所以我就先開了乙個t[ ]陣列,記錄 a[ i ] - b[ i ] 的值,即 t[ i ] = a[ i ] - b[ i ]; 這就記錄了兩個陣列對應元素的差值,哪個值出現最多就選哪個唄~那麼對於-1e9 ~ 1e9的資料,你總不能開個1e18長度的陣列來記錄吧?所以這時候mp屬性就派上用場了,mp[ t[ i ] ]++, 就記錄了每個差值出現了幾次,用個max維護即可,注意要加標頭檔案, 且每次使用先要用mp.clear( )初始化。
本人ac**:
#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxx = 1e5 + 7;
int cas;
int n;
int a[maxx];
int b[maxx];
int t[maxx];
map mp;
int main()
printf("%d\n", maxt);}}
< l >
題意:給一堆單詞,每個單詞後面有它的喜愛度,給定要選定的單詞個數num, 要求你選出一串單詞使得它們組成的句子,總喜愛度最高,總喜愛度sum = (t - i +1)*第i個單詞的喜愛度,輸出總喜愛度。如果有相同選法,選字典序最小那個句子輸出。
思路:赤裸裸的結構體快排,不多說,之前講過結構體快排的專項,不懂的戳這裡~
本人ac**:
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxx = 1e5 + 7;
int cas;
int n, t;
struct pp per[maxx];
bool cmp(pp x, pp y)
return x.m > y.m;
}int main()
}return 0;
}< m >
題意:水題,給一串串行,給乙個數,讓該序列每個元素加上該數,看能否被7整除。
思路:直接按題意暴力。
本人ac**:
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxx = 1e5 + 7;
const int inf = 1e9 + 7;
int cas;
int n, m;
int a[maxx];
int main()
if(***) puts("yes");
else puts("no");
}return 0;
}
2015浙江省賽
zoj 3872 beauty of array 對於每個數,計算這個數被累加的次數。找到這個數左邊這個數出現的地方,在這之間的所有數的數量 這個數後面的數的數量,即為這個數被計算的次數 include include typedef long long ll int a 1000005 post ...
2019浙江省賽
題意 n個點的二叉樹 無向邊 的單向邊,構造一條到達且只到達每個點一次的路徑。題解 兩次dfs。第一次dfs為向i 1優先,2i次之。然而,發現某些點有兩條出路,這是由於該點在最底層 有些點沒有達到,這是因為這些點在最後一層或倒數第二層的右下角 第二次dfs時先判斷該點的右子節點是否達到過,如果沒到...
浙江省賽 E題
題意 給你乙個長度為n的陣列每一次只能選陣列中的乙個元素放在第乙個位置。問你至少你移動多少次才能使陣列內的元素不遞減。思路 a陣列為原來的陣列b陣列為排序之後的陣列,從b陣列的最後乙個開始一直往前去匹配a陣列的最後乙個一直往前,匹配上的就是不用移動的 include define maxn 1000...