嗯一如既往地爆炸,长期稳定在超低水平
(1)poke
有
n
张牌,两种出法
1.对子:两张点数相同的牌
2.顺子:三张点数相邻且互异的牌(1,2,3)
其实是个贪心,先选对子不见得对
在多拿对子的情况下,如果当前还剩一张且下一位有单数张剩余且下两位有牌,那么你组顺子是一定不亏的
而且可能会赚
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<iomanip>
using namespace std;
inline int read(){
int i=0,f=1;
char ch;
for(ch=getchar();!isdigit(ch);ch=getchar())
if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar())
i=(i<<3)+(i<<1)+(ch^48);
return i*f;
}
int buf[1024];
inline void write(int x){
if(!x){putchar('0');return ;}
if(x<0){putchar('-');x=-x;}
while(x) buf[++buf[0]]=x%10,x/=10;
while(buf[0]) putchar(buf[buf[0]--]+48);
return ;
}
#define stan 1111111
int val[stan];
int n,x,ans;
signed main(){
n=read();
for(int i=1;i<=n;++i){
x=read();
++val[x];
}
for(int i=1;i<=1000000;++i){
ans+=(val[i]/2);
val[i]%=2;
if(i+1<n){
if(val[i]==1&&val[i+2]&&val[i+1]%2){
++ans;
--val[i];
--val[i+1];
--val[i+2];
}
}
}
write(ans);
return 0;
}
(2)ball
初赛题
就是一个求路径中只经过一次的格子数量
各种找规律,我%的glory的
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<iomanip>
#define int long long
using namespace std;
inline int read(){
int i=0,f=1;
char ch;
for(ch=getchar();!isdigit(ch);ch=getchar())
if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar())
i=(i<<3)+(i<<1)+(ch^48);
return i*f;
}
int buf[1024];
inline void write(int x){
if(!x){putchar('0');return ;}
if(x<0){putchar('-');x=-x;}
while(x) buf[++buf[0]]=x%10,x/=10;
while(buf[0]) putchar(buf[buf[0]--]+48);
return ;
}
#define stin 111
int T,n,m,x,y,nx,ny,ans,t,tot,inter;
bool tag;
int gcd(int a,int b){
if(b) return gcd(b,a%b);
return a;
}
int solve(){
x=n-1;
y=m-1;
int g=gcd(x,y);
tot=x*y/g;
x/=g;y/=g;
inter=(y-1)*(x-1);
return tot-inter;
}
signed main(){
T=read();
while(T--){
n=read();m=read();
write(solve()+1);
puts("");
}
return 0;
}
(3)box
n
盒有长宽且不可旋转
一盒只能装一盒,可以不断嵌套
求最小占地面积
响应CCF号召在NOIP考察网络流、费用流
建边思路如下