JankTao相亲记
解法:排序
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const double INF = 1e20;
const double pi = acos(-1.);
int main()
{
int t;
int a[100];
while(cin>>t)
{
while(t--)
{
for(int i=0;i<11;i++)
{
cin>>a[i];
}
sort(a,a+11);
printf("%d\n",a[9]);
}
}
return 0;
}
David的沙漠之路
解法:贪心,尽量往最大的距离走,加上它经历过的加油站中最大的那个,模拟这个过程需要考虑很多情况
#include
#include
#include
using namespace std;
struct cmp
{
bool operator ()(int &a,int &b)
{
return a
}
};
struct node
{
int x,y;
} e[1005];
int main()
{
priority_queue,cmp>que;
int T;
scanf("%d",&T);
while(T--)
{
int n,l,s,x,y,cnt=0,flag=0,f=0;
scanf("%d%d%d",&n,&l,&s);
for(int i=0; i
{
scanf("%d%d",&e[i].x,&e[i].y);
}
e[n].x=0,e[n].y=l;
for(int i=0; i<=n; i++,f=0)
{
x=e[i].x,y=e[i].y;
if(y<=s)
{
que.push(x);
f=1;
//最长可以横跨多少加油站,把他们放在队列里
}
while(y>=s)
{
if(s>=l) break;
if(!f && s==y)
{
que.push(x);
f=1;
//没有横跨,刚刚好到达
}
if(que.empty())
{
printf("TJ\n");
flag=1;
break;
}
int xx=que.top();//取最近的加油站
que.pop();
s+=xx;
cnt++;
}
if(!f) que.push(x);
if(s>=l)
{
printf("%d\n",cnt);
flag=1;
break;
}
if(flag) break;
}
if(!flag) printf("TJ\n");
while(!que.empty()) que.pop();
}
return 0;
}
TJ的文件系统
解法:字符串处理
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
const int maxn = 22;
int main()
{
int t;
int n;
int i;
int j;
string s,ss;
while(cin>>t)
{
while(t--)
{
string sss="";
int ans;
cin>>n>>s;
for(i=0;i
{
string sss="";
cin>>ss;
ans=ss.find(".");
// cout<
for(j=ans+1;j
{
sss+=ss[j];
}
// cout<
if(sss==s)
{
cout<
}
}
}
}
return 0;
}
握手定理
解法:水题
#include
int main()
{
int SEQ, ACK1, ACK2, T;
scanf("%d", &T);
while(T--)
{
scanf("%d %d %d", &SEQ, &ACK1, &ACK2);
if((ACK1 == SEQ + 1) && (ACK2 == ACK1 + 1))
{
printf("QWN3213\n");
}
else
printf("TJ\n");
}
return 0;
}
Alice AND Bob
解法:模拟
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
int a[100000],b[100000],c[100000];
int main()
{
int t;
int i,j;
int n,m;
int x,y;
int k;
cin>>t;
while(t--)
{
k=0;
cin>>n>>m;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i
{
cin>>x;
a[x]++;
}
for(i=0;i
{
cin>>y;
b[y]++;
}
for(i=0;i<100000;i++)
{
if(a[i]&&b[i])
c[k++]=i;
}
for(i=0;i
{
if(i==0)
{
printf("%d",c[i]);
}
else
{
printf(" %d",c[i]);
}
}
cout<
}
return 0;
}
建群数据
解法:字符串处理时间
#include
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
struct P
{
int number;
int hhmmss;
}hehe[100000];
int cmp(P a,P b)
{
if(a.number==b.number)
return a.hhmmss
else
return a.number
}
string s,ss,sss,ssss;
string sssss;
int t,n;
int a;
int i,j;
int ans;
int poi;
int num;
int main()
{
cin>>t;
while(t--)
{
poi=1;
cin>>n;
for(i=0;i
{
cin>>a>>s;
hehe[i].number=a;
ss=s.substr(0,2);
sss=s.substr(2,2);
ssss=s.substr(4,2);
// cout<
hehe[i].hhmmss=((ss[0]-‘0‘)*10+(ss[1]-‘0‘)*1)*3600+((sss[0]-‘0‘)*10+(sss[1]-‘0‘))*60+((ssss[0]-‘0‘)*10+(ssss[1]-‘0‘));
}
cin>>sssss;
ss=sssss.substr(0,2);
sss=sssss.substr(2,2);
ssss=sssss.substr(4,2);
ans=((ss[0]-‘0‘)*10+(ss[1]-‘0‘))*3600+((sss[0]-‘0‘)*10+(sss[1]-‘0‘))*60+((ssss[0]-‘0‘)*10+(ssss[1]-‘0‘));
sort(hehe,hehe+n,cmp);
num=hehe[0].hhmmss;
for(int i=1;i
{
if(hehe[i].number!= hehe[i-1].number||hehe[i].hhmmss-num>ans)
{
poi++;
num=hehe[i].hhmmss;
}
}
printf("%d\n",poi);
}
return 0;
}