Codeforces #685 div2
CF div2 #685
C. String Equality
1
6 2
aabbde
deeeee
我的想法是直接排序然后模拟加
但是像这一组就炸了
问题在于它加的模拟是从当前最小的起步,这里没有办法保证是不是最小的,本来应该让d加到e,中间两个b一起的,但是这里就成了b单飞了。
WA的代码
#include
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f3f
#define max(a,b) (a>b ? a:b)
#define min(a,b) (a'9')last=ch,ch=getchar();
while(ch>='0'&&ch<='9')ans=ans*10+ch-'0',ch=getchar();
if(last=='-')ans=-ans;
return ans;
}
string s;
int n,k;
int a[maxn],b[maxn];
int c[maxn];
void solve()
{
cin>>n>>k;
cin>>s;
for(int i=0;i>s;
for(int i=0;i0)
{
cout<<"No\n";
return;
}
if(a[cur]==b[cur])continue;
int tmp=b[cur]-a[cur];
for(int i=1;i
AC的代码
#include
#include
#include
#include
using namespace std;
#define INF 0x3f3f3f3f
#define max(a,b) (a>b ? a:b)
#define min(a,b) (a'9')last=ch,ch=getchar();
while(ch>='0'&&ch<='9')ans=ans*10+ch-'0',ch=getchar();
if(last=='-')ans=-ans;
return ans;
}
string s;
int n,k;
int a[maxn],b[maxn];
int c[maxn];
void solve()
{
cin>>n>>k;
cin>>s;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=0;i>s;
for(int i=0;i