a.
/**
此題由於字串的長度是10^5,所以利用o(n^2)暴力來做的話,
顯然是超時的,所以不採用這種方法,我們可以計算每個字元
出現的次數,而題目中 告訴pairs (x, y) and (y, x)
should be considered different,所以組成的個數總和就是
每個字元出現的次數的乘積之和。
*/#include#include#include#include using namespace std;
typedef long long ll;
int main() ;
string s;
cin>>s;
for(int i=0; i
/**這題是關於字串的題目,主要注意的地方是輸入問題,
用string的話,cin輸入遇到空格或者回車都會結束,
所以必須用getline()來進行輸入;如果對字串的
*/#include #include #include #include using namespace std;
string s;
int num[30];
int main()
getline(cin,s);
for(int i=0; i='a'&&s[i]<='z')--num[s[i]-'a'];
else if(s[i]>='a'&&s[i]<='z')--num[s[i]-'a'];
}int flag=0;
for(int i=0; i<30; i++)
}if(flag) else }}
return 0;
}
c.
/**
由題目知道luck number是4和7;所以我們可以
採用以四個不同的字母為乙個週期,這樣他們的
位置相減就會是4,這樣就滿足了題目要求的意思!
但是因為題目要求是字典序最小,所以是按照abcd這
四個字元組成乙個週期。
例如:abcdab
a:1 5
b:2 6
c:3d:4
因為a:5-1=4;b:6-2=4;
所以採用週期為4!
*/#include#include#includeusing namespace std;
int main() ;
int for[105],bac[105];
///模擬題,棧的應用
int main()
if(strcmp(com,"back") == 0)
}if(strcmp(com,"forward") == 0) }}
}return 0;
}
e.
#include #include using namespace std;
const int n = 10005;
char s[n];
int main() else sum--;
}if(idx == -1) printf("no solution\n");///沒有找到,說明當前的括號串字典序最大
else
printf("\n");}}
return 0;
}
f.
#include#include#includeusing namespace std;
///模擬題
int g[105][105],g[105][105];
int main()
}swap(n,m);
}else if(d==180)}}
else if(d==270)
}swap(n,m);
}for(int i=1;i<=n;++i)
for(int j=1;j<=m;++j)
g[i][j]=g[i][j];
}printf("%d.\n",++case);
for(int i=1;i<=n;++i)
}return 0;
}
新生訓練賽002 B
這道題非常有趣,有的時候理解題意都理解不對,應該按照題目的思路分析,而不是根據答案自己瞎分析。我一開始想的是,給乙個序列,找出最小的值,然後一次往前往後挪乙個,一次找出當前序列最大的值。但題目的意思是,從a1到ai,i 1,2,3,4,n,問其中序列是否等於j i 1個 預處理存位置 include...
2023年新生訓練賽 第 場題解
感覺怎麼說呢,現在寫的 很彆扭,自己都有點看不太慣。算了,廢話說那麼多也沒啥意思,還是速度寫題解,寫完回去學習。珍惜現在,好好做自己的事,少廢話,a mahmoud and ehab and the mex 題意 增加或減少陣列的元素,使陣列中沒有的最大非負整數為x,最少運算元?解法 找到比x小而且...
bistuacm 2023年第 場新生訓練賽題解
知識點 列舉 題意 尋找距離陣列某個數最接近的a i k且b i 1的數。解法 按題意模擬即可。includeusing namespace std int main for t 0 t cout 10 t 知識點 數學 題意 找到大於a,且各數字只含乙個非0數字的數,輸出其和a的差。解法 求出a的...