练习题
3
答案
#include <stdio.h>
/************found************/
fun (char *a) {
if (*a) {
fun(a + 1);
/************found************/
printf("%c",*a);
}
}
int main() {
char s[100] = {0};
gets(s);
fun(s);
return 0;
}
注意事项
13
答案
#include <stdio.h>
#define N 15
int main() {
int a[N][N] = {0}, i, j, k, m, n;
scanf("%d", &n);
if (n % 2 == 0)
m = n / 2 ;
else
/**********found**********/
m = (n+1)/2;
for (i = 0; i < m; i++) {
/**********found**********/
for (j = i ; j < n - i; j++)
a[i][j] = a[n - i - 1][j] = i + 1;
for (k = i + 1; k < n - i; k++)
/**********found**********/
a[k][i] = a[k][n - i - 1] = i+1;
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%3d", a[i][j]);
printf("\n");
}
return 0;
}
注意事项
23
答案
#include<bits/stdc++.h>
using namespace std;
/*你的王国里有一条n个头的恶龙,你希望雇佣一些骑士把它杀死(也就是砍掉所有的头)。
村里有m个骑士可以雇佣,一个能力值为 x 的骑士可以砍掉恶龙一个直径不超过 x 的头,且需要报酬 x 个金币。
如何雇佣骑士才能砍掉恶龙所有的头,并且支付最小的金币?
注意,一个骑士只能砍一个头并且仅能被雇佣1次。
输入说明
输入包含多组测试数据。
每组测试数据的第一行输入两个整数n和m(m和n都在1到20000 之间), n表示龙拥有的头的数目 , m表示王国中的骑士数。
接下来的 n 个整数为龙头的直径,再接下来m个整数为骑士的能力值。
输出说明
对于每组测试数据, 输出一行包含国王杀死龙需要支付的最低数量的金币。如果骑士不可能杀死龙, 输出一行:
"Lose!"(输出不包含引号)*/
int main(){
int n,m;
while(cin>>n>>m){
vector<int> N(n);
vector<int> M(m);
for(int i=0;i<n;i++){
cin>>N[i];
}
for(int i=0;i<m;i++){
cin>>M[i];
}
sort(N.begin(),N.end());
sort(M.begin(),M.end());
int coin=0;
int k=0;
for(int i=0;i<n;i++){
while(N[i]>M[k]&&k<m){
k++;
}
if(k<m){
coin+=M[k];
k++;
}else{
coin=-1;
break;
}
}
if(coin==-1){
cout<<"Lose!"<<endl;
}else{
cout<<coin<<endl;
}
}
return 0;
}
注意事项
33
答案
#include<bits/stdc++.h>
using namespace std;
/*给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),
如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。
输入说明
第一行一个数字L。
第二行是字符串S。
L大于0,且不超过S的长度。
n<=60
S中所有字符都是小写英文字母。
输出说明
一行,题目要求的字符串。
输入样例1:
4
bbaabbaaaaa
输出样例1:
bbaa
输入样例2:
2
bbaabbaaaaa
输出样例2:
aa*/
int main(){
int L;
cin>>L;
string S;
cin>>S;
int n=S.length();
string ans="";
int bestcnt=-1;
int bestpos=n;
for(int i=0;i<n;i++){
for(int len=L;i+len<n;len++){
string sub=S.substr(i,len);
int cnt=0;
int firstpos=-1;
for(int j=0;j+len<n;j++){
if(S.substr(j,len)==sub){
cnt++;
}
if(firstpos==-1)firstpos=j;
}
if(cnt>bestcnt||(cnt==bestcnt&&len>(int)ans.length())||
(cnt==bestcnt&&len==(int)ans.length()&&firstpos<bestpos)){
ans=sub;
bestcnt=cnt;
bestpos=firstpos;
}
}
}
cout<<ans<<endl;
return 0;
}
注意事项
43
答案
#include<bits/stdc++.h>
using namespace std;
/*给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。
注意,由于存在相等的元素,因此,第2大的数可能和第1大的数相等。
输入说明
第一行包含一个数n,表示序列长度。
第二行包含n个正整数,表示给定的序列。
第三个包含一个正整数m,表示询问个数。
接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。
n,m<=1000;
保证k<=(r-l+1),序列中的数<=106。
输出说明
总共输出m行,每行一个数,表示询问的答案。*/
int main(){
int n,m;
cin>>n;
vector<int> N(n);
for(int i=0;i<n;i++){
cin>>N[i];
}
cin>>m;
for(int i=0;i<m;i++){
int l,r,k;
cin>>l>>r>>k;
vector<int> T;
for(int j=l-1;j<r;j++){
T.push_back(N[j]);
}
sort(T.begin(),T.end(),greater<int>());
cout<<T[k-1]<<endl;
}
return 0;
}
注意事项
53
答案
#include<bits/stdc++.h>
using namespace std;
/*s01串初始为"0"
按以下方式变换:
0变1,1变01
所以,变换规律如下:
1次变换后:1;
2次变换后:01;
3次变换后:101;
4次变换后:01101;
5次变换后:10101101;
......
输入说明
输入1个整数n,范围为0<=n<=19,表示变换的次数
输出说明
n次变换后的s01串,行首行尾无空格,也无空行。*/
int main(){
int n;
cin>>n;
string a="0";
for(int i=1;i<=n;i++){
string res="";
for(int j=0;j<a.length();j++){
if(a[j]=='0'){
res+="1";
}else{
res+="01";
}
}
a=res;
}
cout<<a<<endl;
return 0;
}
注意事项
63
答案
#include<bits/stdc++.h>
using namespace std;
/*输入说明
输入包含n+2行:
第1行包括一个整数w,为每组纪念品价格之和的上限。
第2行为一个整数n,表示购来的纪念品的总件数。
第3~n+2行每行包含一个正整数pi (5 <= pi <= w),表示所对应纪念品的价格。
1 <= n <= 30000, 80 <= w <= 200
输出说明
输出仅一行,包含一个整数,即最少的分组数目。*/
int main(){
int w,n;
cin>>w>>n;
vector<int> pi(n);
for(int i=0;i<n;i++){
cin>>pi[i];
}
sort(pi.begin(),pi.end());
int left=0;
int right=n-1;
int count=0;
while(left<right){
if(pi[left]+pi[right]<=w){
count++;
left++;
right--;
continue;
}
count++;
right--;
}
if(left=right){
count++;
}
cout<<count<<endl;
return 0;
}
注意事项
- 注意left和right相等的情况。
- 注意if中的==不要写错。
英语翻译
- 预训练模型已经在现代人工智能领域成为了一个重要的模型,这些模型都是在大规模数据集上进行第一次训练来学习大概的表针,然后在特殊的下列任务中进行微调的这种方式显著的减少了被标签的数据的需要,并且提升了模型的表现,在自然语言处理领域向BERT和GPT这样的模型都是使用自监督学习目标进行预训练的。微调使得这些模型能够适应例如文本分类情感分析和问题回答等任务。迁移学习通过把知识从一个领域迁移到另一个领域在这个处理中发挥了一个重要的作用。不考虑他们的效率,训练模型要求大量的计算资源,这产生了有关效率和环境影响的问题。