1.优雅文章
2.土地问题
3.定义的公式
4.l领导关系
5.叫号,每叫到一个学生,将他放在队首,求最终的队首和队尾元素
1.ac:100%
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
cin>>s;
int res,lens,dn=0,xn=0;
lens=s.length();
for(int i=0;i<lens;i++){
if(s[i]<='Z'&&s[i]>='A')
dn++;
if(s[i]<='z'&&s[i]>='a')
xn++;
}
res=xn<dn?lens/2-xn:lens/2-dn;
cout <<res<< endl;
return 0;
}
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
cin>>s;
int res,lens,dn=0,xn=0;
lens=s.length();
for(int i=0;i<lens;i++){
if(s[i]<='Z'&&s[i]>='A')
dn++;
if(s[i]<='z'&&s[i]>='a')
xn++;
}
res=xn<dn?lens/2-xn:lens/2-dn;
cout <<res<< endl;
return 0;
}
2.ac:100%
#include <iostream>
#define M 100000
using namespace std;
int main()
{
int temp1[M],temp2[M],a[M]={0},b[M]={0};//分别表示A单独,B单独,共同想要的土地编号
int n,a_n,b_n,a_res=0,b_res=0;
cin>>n>>a_n>>b_n;//输入
for(int i=1;i<=a_n;i++)
cin>>temp1[i];
for(int i=1;i<=b_n;i++)
cin>>temp2[i];
for(int i=1;i<=a_n;i++)//数组a[i]=0,b[i]!=0 ,a单独想要,相反情况b单独想要,ab同时为1都想要
a[temp1[i]]++;
for(int i=1;i<=b_n;i++)
b[temp2[i]]++;
for(int i=1;i<=n;i++){
if(a[i]==1&&b[i]==0)
a_res++;
if(a[i]==0&&b[i]==1)
b_res++;
}
cout<<a_res<<" "<<b_res<<" "<<n-a_res-b_res;
return 0;
}
#define M 100000
using namespace std;
int main()
{
int temp1[M],temp2[M],a[M]={0},b[M]={0};//分别表示A单独,B单独,共同想要的土地编号
int n,a_n,b_n,a_res=0,b_res=0;
cin>>n>>a_n>>b_n;//输入
for(int i=1;i<=a_n;i++)
cin>>temp1[i];
for(int i=1;i<=b_n;i++)
cin>>temp2[i];
for(int i=1;i<=a_n;i++)//数组a[i]=0,b[i]!=0 ,a单独想要,相反情况b单独想要,ab同时为1都想要
a[temp1[i]]++;
for(int i=1;i<=b_n;i++)
b[temp2[i]]++;
for(int i=1;i<=n;i++){
if(a[i]==1&&b[i]==0)
a_res++;
if(a[i]==0&&b[i]==1)
b_res++;
}
cout<<a_res<<" "<<b_res<<" "<<n-a_res-b_res;
return 0;
}
3.ac:50%
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n,res;
cin>>n;
int a[n+1],b[n+1],c[n+1];//b[2]保存模的结果
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
b[j]=i%j;//得到一个b[i]后面部分
int temp=b[1];
for(int k=2;k<=n;k++)
temp^=b[k];
c[i]=a[i]^temp;
}
res=c[1];
for(int i=2;i<=n;i++)
res^=c[i];
cout<<res;
return 0;
}
5.ac:100%
#include <vector>
using namespace std;
int main()
{
int n,res;
cin>>n;
int a[n+1],b[n+1],c[n+1];//b[2]保存模的结果
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
b[j]=i%j;//得到一个b[i]后面部分
int temp=b[1];
for(int k=2;k<=n;k++)
temp^=b[k];
c[i]=a[i]^temp;
}
res=c[1];
for(int i=2;i<=n;i++)
res^=c[i];
cout<<res;
return 0;
}
#include <iostream>
#include <algorithm>
#define M 10000
using namespace std;
int findex(int a[],int m,int n){
for(int i=1;i<=m;i++)
if(a[i]==n){
return i;
}
}
int main()
{
int n;
cin>>n;
int res[n+1];
int a[n+1];
for(int i=1;i<=n;i++)
cin>>a[i];
int max_=0;
for(int i=1;i<=n;i++)
if(max_<a[i])
max_=a[i];
for(int i=1;i<=max_;i++)
res[i]=i;
int i;
cout<<"叫号过程过程"<<endl;
for(i=1;i<=n;i++){
// for(int j=a[i];j<n;j++)//右半部分
// res[j]=res[j+1];//前移
int max_index=findex(res,max_,a[i]);//找到正在叫的人所处的位置
if(a[i]==res[1]);//什么都不做,就在开头
else{
for(int j=max_index;j>=2;j--)
res[j]=res[j-1];//后移
res[1]=a[i];
}
for(int j=1;j<=max_;j++)
cout<<res[j]<<" ";
cout<<endl;
}
//temp=a[i];
//被叫的左边往后移动,后面前往前移动
//当被叫到的是队列首元素,无前半部
cout<<"最终结果"<<res[1]<<" "<<res[max_];
return 0;
}
#include <algorithm>
#define M 10000
using namespace std;
int findex(int a[],int m,int n){
for(int i=1;i<=m;i++)
if(a[i]==n){
return i;
}
}
int main()
{
int n;
cin>>n;
int res[n+1];
int a[n+1];
for(int i=1;i<=n;i++)
cin>>a[i];
int max_=0;
for(int i=1;i<=n;i++)
if(max_<a[i])
max_=a[i];
for(int i=1;i<=max_;i++)
res[i]=i;
int i;
cout<<"叫号过程过程"<<endl;
for(i=1;i<=n;i++){
// for(int j=a[i];j<n;j++)//右半部分
// res[j]=res[j+1];//前移
int max_index=findex(res,max_,a[i]);//找到正在叫的人所处的位置
if(a[i]==res[1]);//什么都不做,就在开头
else{
for(int j=max_index;j>=2;j--)
res[j]=res[j-1];//后移
res[1]=a[i];
}
for(int j=1;j<=max_;j++)
cout<<res[j]<<" ";
cout<<endl;
}
//temp=a[i];
//被叫的左边往后移动,后面前往前移动
//当被叫到的是队列首元素,无前半部
cout<<"最终结果"<<res[1]<<" "<<res[max_];
return 0;
}
全部评论
(1) 回帖