社区讨论
TLE,这种想法在哪是比较耗时的?
P1308[NOIP 2011 普及组] 统计单词数参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lr6jahzd
- 此快照首次捕获于
- 2024/01/09 23:56 2 年前
- 此快照最后确认于
- 2024/01/10 15:18 2 年前
CPP
#include <iostream>
using namespace std;
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<string.h>
#include<cmath>
#include<sstream>
#include<map>
#include<queue>
#define PII pair<int,int>
#define ll long long
#define N 500050
#define MOD 1e9+7
#define vv vector
#define cy cout<<"YES"<<'\n'
#define cn cout<<"NO"<<'\n'
string s, ss;
int arr[N]; int j = 0;
int sum,weizi;
int strcmp1(string a, string b)
{
if (a.size() != b.size())
{
return 0;
}
for (int i = 0; i <= a.size(); i++)
{
char x, y;
x = a[i]; y = b[i];
if (a[i] >= 'A' && a[i] <= 'Z')
{
x += 32;
}
if (b[i] >= 'A' && b[i] <= 'Z')
{
y += 32;
}
if (x != y) return 0;
}
return 1;
}
int main()
{
cin >> s; getchar();
char c; int z = 0;
while ((c = getchar()) != '\n')
{
if (c == ' ')
{
arr[++j] = z;
}
z++;
ss += c;
}
bool flag = false;
for (int i = 1; i <= j; i++)
{
string x;
if (i == 1)
{
x = ss.substr(arr[i - 1], arr[i] - arr[i - 1]);
}
else
{
x = ss.substr(arr[i - 1] + 1, arr[i] - arr[i - 1] - 1);
}
if (strcmp1(s, x))
{
sum++;
if (!flag)
{
if (i == 1) weizi = arr[i - 1];
else weizi = arr[i - 1] + 1;
flag = true;
}
}
}
string x;
x = ss.substr(arr[j] + 1, ss.size() - arr[j]-1);
if (strcmp1(s, x))
{
sum++;
if (!flag)
{
weizi = arr[j]+1;
}
}
if (sum == 0) cout << -1;
else
{
cout << sum << ' ' << weizi;
}
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...