這次比賽有三道題是比較簡單可以做出來的,但是我寫代碼不夠熟練,做的比較慢,還是要多打比賽,多敲代碼,比賽之后及時補題看題解,還有很多算法要學的。這樣的成績並不是很好的名次,和其他隊伍差的太遠了,是因為在平時的用功程度我也遠不及其他那些比較優秀的學生。我最大的問題是遇到難題就容易退縮,沒信心也不敢做,尤其是比賽之后,我看題解的時候有的算法常常看不明白就放棄了,還是沒有好好鑽研,這樣不會做的還是不會,也沒有學會那些算法。
1005 Lunch
//一個偶數不論怎么分,分幾步,結果都是一樣的。奇數無論怎么拆都要奇數次
這個題要用到線性篩求質數
void primes()
{
for(int i=2;i<=100000;i++)
{
if(!s[i])p[f++]=i;//i是質數
for(int j=0;p[j]<=100000/i;j++)
{
s[p[j]*i]=true;//篩掉質數的倍數
if(i%p[j]==0)break;
}
}
}
1003 Express Mail Taking
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//快遞櫃從1到n,入口在第一個櫃子處,每次取快遞前要去第k個櫃子輸入密碼,最后要回到入口處
//求要走的最短距離。
int main()
{
speed_up;
int t;
cin>>t;
while(t--)
{
ll n,m,a;
cin>>n;
cin>>m;
cin>>a;
ll b[m];
ll i;
for(i=0;i<m;i++){
cin>>b[i];
}
sort(b,b+m);
ll num=0;
num+=a-1;
for(i=m-1;i>0;i--){//從最大的櫃子開始取是最短路線
if(b[i]>a){
num+=(b[i]-a)*2;//根據規律可以得出的公式
}else{
num+=(a-b[i])*2;
}
}
if(b[0]>a){
num+=b[0]-a;
}else{
num+=a-b[0];
}
num+=b[0]-1;
cout<<num<<endl;
}
}
1007 CCPC Training Class
#include<bits/stdc++.h>
using namespace std;
#define ll long long
//找出字符串中出現最多的字母出現了幾次
int main()
{
ll t;
cin>>t;
for(int i=0;i<t;i++)
{
string s;
cin>>s;
map<char,int>a;//用map標記每個字母出現的次數,最后輸出最大的就行
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
}
ll m=0,max=0;
for(int i=0;i<a.size();i++)
{
if(m<a[i])
{
m=a[i];
}
}
cout<<"Case #"<<i+1<<": "<<m<<endl;
}
}
1010 Reports
#include<bits/stdc++.h>
using namespace std;
#define ll long long
//只要有兩個以上連續的0或1就輸出no,否則輸出yes
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int p=0;
for(int i=1;i<n;i++)
{
if(a[i]==a[i-1])
{
p=1;
break;
}
}
if(p==0)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
