目录
1002C++ to Python
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string a;
cin>>a;
int l=a.length();
for(int i=0;i<l;i++)
{
if(a[i]=='s')
{
//cout<<"(";
i=i+14;
}
else cout<<a[i];
}
cout<<endl;
}
}
1003Copy
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,q;
cin>>n>>q;
int a[n];
int sum=0;
vector<int>e;
e.clear();
e.reserve(n*2);//避免没必要的内存分配(不写这个超时-惨痛)。
int s=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
e.push_back(a[i]);
}
for(int i=0;i<q;i++)
{
int x,l,r,tmp;
int k=0,w=0;
scanf("%d",&x);
if(x==1)
{
cin>>l>>r;
e.insert(e.begin()+r,e.begin()+l-1,e.begin()+r);
e.resize(n);//容器大小.
}
if(x==2)
{
cin>>tmp;
sum^=e[tmp-1];
}
}
cout<<sum<<endl;
}
}
1007Snatch Groceries
思路:把输入的时间段排序然后检查有无重合处。
#include<iostream>
#include<algorithm>
using namespace std;
struct tie{
int e;
int l;
int qs;
};
bool cmp(tie w,tie s)
{
if(w.e==s.e)
{
if(w.l==s.l) return w.qs<s.qs;
else return w.l>s.l;}
return w.e<s.e;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
tie q[100001];
for(int i=1;i<=n;i++)
{
cin>>q[i].e>>q[i].l;
q[i].qs=i;
}
sort(q,q+n,cmp);
int sum=0,f=0;
for(int i=1;i<=n;i++)
{
if(q[i+1].e<=q[i].l&&i+1<=n)
{
f=1;
break;
}
if(!f) sum=sum+1;
//cout<<sum<<endl;
}
/*if(!f)
{
if(q[n].e>q[n-1].l) sum++;
}*/
if(n==1) sum=1;
cout<<sum<<endl;
}
}
1009ShuanQ
思路:因为 (mod m),即P乘q模m余1,化为
mod(m) =1,在
的基础上-1即可化为(
-1)mod m=0;且m为质数,所以(
-1)/ i 为质数时为m,i的范围为2到
.
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
int t;
cin>>t;
ll p,q,ed,rd;
while(t--)
{
cin>>p>>q>>ed;
ll a=p*q-1,b=0,m=-1;
b=sqrt(a);
for(int i=1;i<=b;i++)
{
int f=1;
if(a%i==0)
{
ll a1=a/i;
for(int j=2;j<=sqrt(a1);j++)
{
if(a1%j==0||a1<=1)
{
f=0;
break;
}
}
if(f==1)
{
m=a/i;
}
}
if(m!=-1) break;
}
if(m==-1){
cout<<"shuanQ"<<endl;
}
else{
cout<<ed*q%m<<endl;
}}
}
1012Luxury cruise ship
思路:7*31*365=79205,大于79205的部分全部用365处理。剩下的背包。(
#include<bits/stdc++.h>
typedef long long ll;
const int ma=79206;
int b[4]={7,31,365};
using namespace std;
int num(int a1) {
int f[a1+1];
f[0]=0;
for(int i=1;i<=a1;i++)
{
f[i]=ma;
for(int j=0;j<3;++j)
{
if(i>=b[j]&&f[i-b[j]]!=ma)
{
f[i]=min(f[i-b[j]]+1,f[i]);
}
}
}
if(f[a1]==ma)
{
return -1;
}
else
{
return f[a1];
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
ll a;
cin>>a;
ll e=0;
int r;
if(a>ma)
{
e=(a-ma)/365+1;
a-=e*365;
}
r=a;
//cout<<r<<endl;
if(num(r))
cout<<num(r)+e<<endl;
else cout<<-1<<endl;
}
}