设为首页 加入收藏

TOP

130831组队赛-Regionals 2011, Asia - Kuala Lumpur(一)
2014-11-23 21:46:34 来源: 作者: 【 】 浏览:12
Tags:130831 组队 -Regionals 2011 Asia Kuala Lumpur
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i
#define N 1000000007
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
int n;
char s[105];
int ss[705];
int main()
{
int t;
scanf("%d",&t);
getchar();
while(t--)
{
gets(s);
int l = strlen(s);
int ll = 0;
int ma = 0;
int a = s[0] - '0';
ss[0] = a;
ma = a;
ll++;
int b;
for(int i=1;i
{
a = s[i-1] - '0';
b = s[i] - '0';
ma = max(ma,b);
if(b == a)
{
ss[ll] = b;
ll++;
}
if(b > a)
{
int c = a + 1;
do
{
ss[ll] = c;
c++;
ll++;
}while(c <= b);
}
if(b < a)
{
int c = a - 1;
do
{
ss[ll] = c;
c--;
ll++;
}while(c >= b);
}
}
for(int i = ma;i >=1;i--)
{
for(int j=0;j
{
if(i > ss[j]) printf("*");
else printf("+");
}
printf("\n");
}
}
return 0;
}
E.Social Holidaying
二分图匹配,题意是给你两个序列,要求A序列中最多有多少对数和为B序列中的数,且A序列中的数每个只能用一次,B序列的数可以无限次出现。
思路:可以将A序列中所有能组成的可能全都组合起来,如果B序列中有出现就开始搜索,把所有情况都搜出来。
[cpp]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i
#define N 1000000007
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
maps;
vectorp[1001];
int vis[1001],tmp[1001];
long long x[1001],y;
int f(int j)
{
int i,q;
for(i=0;i
{
q=p[j][i];
if(vis[q]==0)
{
vis[q]=1;
if(tmp[q]==0||f(tmp[q])==1)
{
tmp[q]=j;
return 1;
}
}
}
return 0;
}
int main()
{
int t,i,j,sum,n,m;
scanf("%d",&t);
while(t--)
{
s.clear();
scanf("%d%d",&n,&m);
for(i=0;i
{
scanf("%lld",&x[i]);
}
for(i=0;i
{
scanf("%lld",&y);
s[y]=1;
}
for(i=0;i
{
p[i].clear();
}
sum=0;
for(i=0;i
{
for(j=0;j
{
if(i==j)
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中的引用和移动语义 下一篇(step8.2.6)hdu 1848(Fibonacci a..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·深入理解 Java 集合 (2025-12-27 07:22:48)
·Java集合框架全面解 (2025-12-27 07:22:45)
·时隔 15 年,巨著《J (2025-12-27 07:22:43)
·定义一个类模板并实 (2025-12-27 06:52:28)
·一文搞懂怎么用C语言 (2025-12-27 06:52:25)