delete pics to save space
This commit is contained in:
18
history_source/ccf 基础篇/U2/2.4.1.cpp
Normal file
18
history_source/ccf 基础篇/U2/2.4.1.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
using namespace std;
|
||||
bool pan(string sr)
|
||||
{
|
||||
if(!((sr[0]>='a'&&sr[0]<='z')||(sr[0]>='A'&&sr[0]<='Z')||sr[0]=='_')) return 0;
|
||||
for(int i=0;i<sr.size();i++) if(!((sr[i]>='a'&&sr[i]<='z')||(sr[i]>='A'&&sr[i]<='Z')||sr[i]=='_'||(sr[i]>='0'&&sr[i]<='9'))) return 0;
|
||||
return 1;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
string sr;
|
||||
getline(cin,sr);
|
||||
if(pan(sr)) cout<<"yes";
|
||||
else cout<<"no";
|
||||
cout<<endl;
|
||||
return 0;
|
||||
}
|
24
history_source/ccf 基础篇/U2/2.4.2.cpp
Normal file
24
history_source/ccf 基础篇/U2/2.4.2.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
int num[26],b;
|
||||
char sr;
|
||||
for(int i=0;i<26;i++) num[i]=0;
|
||||
while((sr=getchar())!='\n') if(sr>='A'&&sr<='Z') num[sr-'A']++;
|
||||
while((sr=getchar())!='\n') if(sr>='A'&&sr<='Z') num[sr-'A']++;
|
||||
while((sr=getchar())!='\n') if(sr>='A'&&sr<='Z') num[sr-'A']++;
|
||||
while((sr=getchar())!='\n') if(sr>='A'&&sr<='Z') num[sr-'A']++;
|
||||
b=num[0];
|
||||
for(int i=0;i<26;i++) if(num[i]>b) b=num[i];
|
||||
for(int i=b;i>=0;i--)
|
||||
{
|
||||
for(int j=0;j<26;j++)
|
||||
if(num[j]>i) cout<<"* ";
|
||||
else cout<<" ";
|
||||
cout<<endl;
|
||||
}
|
||||
for(int i=0;i<26;i++) cout<<char(i+'A')<<" ";
|
||||
cout<<endl;
|
||||
return 0;
|
||||
}
|
62
history_source/ccf 基础篇/U2/2.4.3.cpp
Normal file
62
history_source/ccf 基础篇/U2/2.4.3.cpp
Normal file
@ -0,0 +1,62 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
#include<vector>
|
||||
using namespace std;
|
||||
void turn(string &sr)
|
||||
{
|
||||
char li;
|
||||
for(int i=0,j=sr.size()-1;i<j;i++,j--)
|
||||
{
|
||||
li=sr[i];
|
||||
sr[i]=sr[j];
|
||||
sr[j]=li;
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
string sr,li2;
|
||||
vector <char> li;
|
||||
int p1,p2,p3;
|
||||
cin>>p1>>p2>>p3;
|
||||
cin>>sr;
|
||||
for(int i=1;i<sr.size();i++)
|
||||
{
|
||||
if(sr[i]=='-')
|
||||
{
|
||||
if(sr[i+1]-sr[i-1]==1)
|
||||
{
|
||||
sr.erase(i,1);
|
||||
i--;
|
||||
continue;
|
||||
}
|
||||
if(sr[i+1]<=sr[i-1]) continue;
|
||||
sr.erase(i,1);
|
||||
li.clear();
|
||||
for(int j=1;j+sr[i-1]<sr[i];j++)
|
||||
{
|
||||
for(int k=0;k<p2;k++)
|
||||
{
|
||||
switch(p1)
|
||||
{
|
||||
case 1:
|
||||
li.push_back(char(sr[i-1]+j));
|
||||
break;
|
||||
case 2:
|
||||
li.push_back(char(sr[i-1]+j-32));
|
||||
break;
|
||||
case 3:
|
||||
li.push_back('*');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
li2="";
|
||||
for(int i=0;i<li.size();i++) li2+=li[i];
|
||||
if(p3==2) turn(li2);
|
||||
sr.insert(i,li2);
|
||||
i+=li.size()-1;
|
||||
}
|
||||
}
|
||||
cout<<sr<<endl;
|
||||
return 0;
|
||||
}
|
62
history_source/ccf 基础篇/U2/2.4.4.cpp
Normal file
62
history_source/ccf 基础篇/U2/2.4.4.cpp
Normal file
@ -0,0 +1,62 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
using namespace std;
|
||||
string sr1;
|
||||
short T1[52],T2[52];
|
||||
int hash_(char n)
|
||||
{
|
||||
if(n>='A'&&n<='Z') return n-'A';
|
||||
return n-'a'+26;
|
||||
}
|
||||
void insert(char a){T2[hash_(a)]++;}
|
||||
void delete_(char a)
|
||||
{
|
||||
T2[hash_(a)]--;
|
||||
if(T2[hash_(a)]<0) T2[hash_(a)]=0;
|
||||
}
|
||||
bool check()
|
||||
{
|
||||
for(int i=0;i<52;i++) if(T1[i]!=T2[i]) return 0;
|
||||
return 1;
|
||||
}
|
||||
struct Node
|
||||
{
|
||||
char c;
|
||||
Node *next;
|
||||
};
|
||||
int main()
|
||||
{
|
||||
freopen("in.txt","r",stdin);
|
||||
ios::sync_with_stdio(0);
|
||||
int ans=0;
|
||||
cin>>sr1;
|
||||
for(int i=0;i<sr1.size();i++)
|
||||
{
|
||||
if(sr1[i]>='A'&&sr1[i]<='Z') T1[sr1[i]-'A']++;
|
||||
else T1[sr1[i]-'a'+26]++;
|
||||
}
|
||||
char ch;
|
||||
Node *head,*last;
|
||||
last=head=new Node;
|
||||
for(int i=0;i<sr1.size();i++)
|
||||
{
|
||||
ch=getchar();
|
||||
insert(ch);
|
||||
last->c=ch;
|
||||
last->next=new Node;
|
||||
last=last->next;
|
||||
}
|
||||
last->next=head;
|
||||
if(check()) ans++;
|
||||
while(ch=getchar(),ch!='\n')
|
||||
{
|
||||
delete_(head->c);
|
||||
head=head->next;
|
||||
last->c=ch;
|
||||
last=last->next;
|
||||
insert(ch);
|
||||
if(check()) ans++;
|
||||
}
|
||||
cout<<ans<<endl;
|
||||
return 0;
|
||||
}
|
40
history_source/ccf 基础篇/U2/2.4.5.cpp
Normal file
40
history_source/ccf 基础篇/U2/2.4.5.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
#include<vector>
|
||||
using namespace std;
|
||||
void turn(string &sr)
|
||||
{
|
||||
for(int i=0;i<sr.size();i++) if(sr[i]>='A'&&sr[i]<='Z') sr[i]+=32;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
string find,li;
|
||||
vector <string> sr;
|
||||
char sr2;
|
||||
int add,i;
|
||||
cin>>find;
|
||||
sr2=getchar();
|
||||
sr.clear();
|
||||
li="";
|
||||
while((sr2=getchar())!='\n')
|
||||
{
|
||||
if(sr2!=' ') li+=sr2;
|
||||
else
|
||||
{
|
||||
sr.push_back(li);
|
||||
li="";
|
||||
}
|
||||
}
|
||||
turn(find);
|
||||
for(int i=0;i<sr.size();i++) turn(sr[i]);
|
||||
add=0;
|
||||
for(int i=0;i<sr.size();i++) if(sr[i]==find) add++;
|
||||
if(add!=0)
|
||||
{
|
||||
cout<<add<<" ";
|
||||
for(i=0;i<sr.size();i++) if(find==sr[i]) break;
|
||||
cout<<i<<endl;
|
||||
}
|
||||
else cout<<-1<<endl;
|
||||
return 0;
|
||||
}
|
48
history_source/ccf 基础篇/U2/2.4.6.cpp
Normal file
48
history_source/ccf 基础篇/U2/2.4.6.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
#define max(a,b) ((a)>(b)?(a):(b))
|
||||
using namespace std;
|
||||
struct Node
|
||||
{
|
||||
int num;
|
||||
Node *next;
|
||||
};
|
||||
string a,b;
|
||||
int maxn(int i,int j)
|
||||
{
|
||||
int ans=0;
|
||||
for(;i<a.size()&&j<b.size()&&a[i]==b[j];i++,j++) ans++;
|
||||
return ans;
|
||||
}
|
||||
int answer()
|
||||
{
|
||||
a=a+a.substr(0,a.size()-1);
|
||||
b=b+b.substr(0,b.size()-1);
|
||||
int ans=-1;
|
||||
for(int i=0;i<a.size();i++)
|
||||
for(int j=0;j<b.size();j++)
|
||||
ans=max(ans,maxn(i,j));
|
||||
return ans;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
// freopen("in.txt","r",stdin);
|
||||
ios::sync_with_stdio(0);
|
||||
Node *head,*last,*p;
|
||||
head=last=new Node;
|
||||
while(true)
|
||||
{
|
||||
cin>>a>>b;
|
||||
if(a.size()==1||b.size()==1) break;
|
||||
last->num=answer();
|
||||
last->next=new Node;
|
||||
last=last->next;
|
||||
}
|
||||
p=head;
|
||||
while(p!=last)
|
||||
{
|
||||
cout<<p->num<<endl;
|
||||
p=p->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user