社区讨论
我该怎么办?
灌水区参与者 11已保存回复 11
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @lpb0dl8u
- 此快照首次捕获于
- 2023/11/23 17:46 2 年前
- 此快照最后确认于
- 2023/11/23 20:35 2 年前
我今年NOIP第一题大样例过了,结果因为某个函数没加return 导致报零,与省一无缘,考场代码如下
CPP#include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
typedef unsigned long long ll;
const ll N=3e3+1000;
const ll hs=22739;
ll n,m;
bool cmpb(ll a,ll b){
return a>b;
}
bool cmps(ll a,ll b){
return a<b;
}
struct node{
char s[N];
char as[N];
char is[N];
ll ma;
ll mi;
}zxx[N];
string s;
//char zxx[N][N];
ll ans[N];
ll last;
ll slove(ll x){
sort(zxx[x].s+1,zxx[x].s+m+1,cmpb);
// for(int i=1;i<=m;i++)cout<<ll(zxx[x].s[i])<<' ';
// printf("\n");
//
for(int i=1;i<=m;i++)zxx[x].as[i]=zxx[x].s[i];
// for(int i=1;i<=m;i++)cout<<char(zxx[x].as[i]+'a'-1)<<' ';
// printf("\n");
for(int i=1;i<=m;i++){
zxx[x].ma=zxx[x].ma*hs+ll(zxx[x].s[i]);
}
sort(zxx[x].s+1,zxx[x].s+m+1,cmps);
// for(int i=1;i<=m;i++)cout<<ll(zxx[x].s[i])<<' ';
// printf("\n");
//
for(int i=1;i<=m;i++)zxx[x].is[i]=zxx[x].s[i];
for(int i=1;i<=m;i++){
zxx[x].mi=zxx[x].mi*hs+ll(zxx[x].s[i]);
}
// for(int i=1;i<=m;i++)cout<<char(zxx[x].is[i]+'a'-1)<<' ';
// printf("\n");
}
bool chick(ll x){
for(ll i=1;i<=n;i++){
if(i==x)continue;
//if(zxx[i].ma<zxx[x].mi)return false;
// string s1,s2;
// for(ll j=1;j<=m;j++){
// s1[j]=zxx[i].as[j];
// s2[j]=zxx[x].is[j];
// }
for(ll j=1;j<=m;j++){
// cout<<x<<endl;
// cout<<char(zxx[i].as[j]+'a'-1)<<' '<<char(zxx[x].is[j]+'a'-1)<<' '<<(zxx[i].as[j] < zxx[x].is[j])<<endl;
if(zxx[i].as[j] < zxx[x].is[j])return false;
if(zxx[i].as[j] > zxx[x].is[j])break;
}
// if(s1<s2)return false;
}
return true;
// ll y=x;
// while(!ans[y])y--;
//printf("%d\n",y);
// for(ll i=1;i<=m;i++){
// //cout<<zxx[y][i]<<" "<<zxx[x][i]<<endl;
// if(zxx[y][i]>zxx[x][i])return true;
// if(zxx[y][i]<zxx[x][i])return false;
// }
// return false;
/*
if(ans[x-1]==1){
for(ll i=1;i<=m;i++){
if(zxx[i][x-1]!=zxx[i][x])return false;
}
return true;
}
else {
ll y=x;
while(!ans[y])y--;
for(ll i=1;i<=m;i++){
if(zxx[i][y]!=zxx[i][x])return false;
}
return true;
}
*/
}
int main(){
freopen("dict.in","r",stdin);
freopen("dict.out","w",stdout);
scanf("%lld%lld",&n,&m);
for(ll i=1;i<=n;i++){
cin>>s;
for(ll j=1;j<=m;j++)zxx[i].s[j]=s[j-1]-'a'+1;
slove(i);
}
for(ll i=1;i<=n;i++){
// if(i==1){
// printf("1");
// ans[i]=1;
// continue;
// }
// sort(zxx[i-1]+1,zxx[i-1]+m+1,cmpb);
// sort(zxx[i]+1,zxx[i]+m+1,cmps);
// for(ll j=1;j<=m;j++)cout<<zxx[i-1][j];
// printf("\n");
// for(ll j=1;j<=m;j++)cout<<zxx[i][j];
// printf("\n");
ans[i]=chick(i);
printf("%lld",ans[i]);
}
// printf("\n");
// for(ll i=1;i<=n;i++){
// for(ll j=1;j<=m;j++)cout<<zxx[i][j];
// printf("\n");
// }
printf("\n");
return 0;
}
/*
4 7
abandon
bananaa
baannaa
notnotn
*/
当初我答应她,拿了省一就找她表白,所以我写数组都用的她的名字,但是我没拿到,我该怎么办?
回复
共 11 条回复,欢迎继续交流。
正在加载回复...