题目列表
乒乓比赛
考虑到最好的方法,是两人一起反向移动(即 A 去贴贴 B,B 去贴贴 A)。
但中间桌子数为奇数时无法贴贴,考虑改变奇偶性。
所以肯定有一人到最前或最后,然后再反向移动去贴贴。
代码
#include<bits/stdc++.h>
#define endl '\n'
#define S(x) scanf("%lld",&x);
#define debug(x) cout<<#x<<":"<<x<<endl<<"LINE:"__LINE__<<endl<<"FUNCTION:"<<__FUNCTION__<<endl
using namespace std;
int main()
{
freopen("match.in","r",stdin);
freopen("match.out","w",stdout);
long long n,a,b;
S(n);S(a);S(b);
if((b-a)%2==0)printf("%lld\n",(b-a)/2);
else
{
long long x=n-b+1,y=a;
printf("%lld\n",min(x+(n-(a+x))/2,y+(b-y-(1))/2));
}
return 0;
}
麻将
一个码量不算太大的模拟。
依次判断即可。
-
国士无双十三面
查看 $1$ 万、$9$ 万、$1$ 条、$9$ 条、$1$ 筒、$9$ 筒、东、南、西、北、中、发、白是否均出现且有一张出现次数 $\geq 2$。
-
七对子
这个最简单,扫一遍看看是否恰好出现两次。
-
九莲宝灯
我&%#¥你*@#&的,同色指字母相同哪里说了!!!
好,身心舒畅了。
先数数字,然后看是不是都是一样的字母即可。
代码
#include<bits/stdc++.h>
#define endl '\n'
#define S(x) scanf("%d",&x);
#define debug(x) cout<<#x<<":"<<x<<endl<<"LINE:"__LINE__<<endl<<"FUNCTION:"<<__FUNCTION__<<endl
using namespace std;
const int n=14;
void solve()
{
string st[20];
map<string,int>mp;
mp.clear();
for(int i=1;i<=n;i++)
{
cin>>st[i];
mp[st[i]]++;
}
//Thirteen
if(mp["1m"]>=1&&mp["9m"]>=1&&
mp["1s"]>=1&&mp["9s"]>=1&&
mp["1p"]>=1&&mp["9p"]>=1&&
mp["E"] >=1&&mp["S"] >=1&&mp["W"] >=1&&mp["N"] >=1&&
mp["B"] >=1&&mp["F"] >=1&&mp["Z"] >=1&&(
mp["1m"]>=2||mp["9m"]>=2||
mp["1s"]>=2||mp["9s"]>=2||
mp["1p"]>=2||mp["9p"]>=2||
mp["E"] >=2||mp["S"] >=2||mp["W"] >=2||mp["N"] >=2||
mp["B"] >=2||mp["F"] >=2||mp["Z"] >=2))
{
puts("Thirteen");
return;
}
//Seven
bool flag=1;
for(int i=1;i<=n;i++)
{
if(mp[st[i]]!=2)flag=0;
}
if(flag)
{
puts("Seven");
return;
}
//Nine
int m=0,s=0,p=0;
bool fm=1,fs=1,fp=1;
for(int i=1;i<=9;i++)
{
if(i==1||i==9)
{
if(mp[to_string(i)+"m"])m++;
if(mp[to_string(i)+"s"])p++;
if(mp[to_string(i)+"p"])s++;
if(mp[to_string(i)+"m"]<3)fm=0;
if(mp[to_string(i)+"s"]<3)fp=0;
if(mp[to_string(i)+"p"]<3)fs=0;
}
else
{
if(mp[to_string(i)+"m"])m++;
if(mp[to_string(i)+"s"])p++;
if(mp[to_string(i)+"p"])s++;
if(mp[to_string(i)+"m"]<1)fm=0;
if(mp[to_string(i)+"s"]<1)fp=0;
if(mp[to_string(i)+"p"]<1)fs=0;
}
}
if(mp["E"]<1&&mp["S"]<1&&mp["W"]<1&&mp["N"]<1&&
mp["B"]<1&&mp["F"]<1&&mp["Z"]<1&&
(m==9&&!p&&!s&&fm&&!fp&&!fs||
!m&&p==9&&!s&&!fm&&fp&&!fs||
!m&&!p&&s==9&&!fm&&!fp&&fs))puts("Nine");
else puts("I don't know.");
}
int main()
{
freopen("majsoul.in","r",stdin);
freopen("majsoul.out","w",stdout);
int t;
S(t);
while(t--)
{
solve();
}
return 0;
}
三角田地
先咕着
代码
跳芭蕾
先咕着
代码