Sat, 02 Nov 2019 17:01:41 GMT

master
大蒟蒻 6 years ago
parent 3fc96547c2
commit 96115708d7

@ -0,0 +1,29 @@
{
// 使 IntelliSense
//
// 访: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Programs\\MSYS2\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
}
]
}

@ -0,0 +1,8 @@
{
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
}
}

19
.vscode/tasks.json vendored

@ -0,0 +1,19 @@
{
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "D:\\Programs\\MSYS2\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "D:\\Programs\\MSYS2\\mingw64\\bin"
}
}
],
"version": "2.0.0"
}

@ -3,7 +3,8 @@
#include <bits/stdc++.h> #include <bits/stdc++.h>
using namespace std; using namespace std;
#define CRP(t, x) const t &x #define CRP(t, x) const t &x
#define OPL(t, x) bool operator<(CRP(t, x)) const #define OPX(op, t, x) operator op(CRP(t, x))
#define OPL(t, x) bool OPX(<, t, x) const
#define FIL(x, v) memset(x, v, sizeof(x)) #define FIL(x, v) memset(x, v, sizeof(x))
#define CLR(x) FIL(x, 0) #define CLR(x) FIL(x, 0)
#define NE1(x) FIL(x, -1) #define NE1(x) FIL(x, -1)
@ -14,27 +15,73 @@ using namespace std;
#define IFD if (_DEBUG) #define IFD if (_DEBUG)
typedef int64_t ll, i64; typedef int64_t ll, i64;
typedef uint64_t ull, u64; typedef uint64_t ull, u64;
const int N = 1005 * 1005; template <typename T>
const double eps = 1e-8; using enable_if_arithmetic = typename enable_if<is_arithmetic<T>::value>::type;
int a[1605], x[45]; template <typename T>
using enable_if_integral = typename enable_if<is_integral<T>::value>::type;
inline char getchar(int)
{
static char buf[64 << 20], *S = buf, *T = buf;
if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + S;
return S == T ? EOF : *S++;
}
template <typename T, typename = enable_if_integral<T>>
inline bool read(T &x)
{
int ch = x = 0, f = 1;
while (!isdigit(ch = getchar()))
{
if (ch == EOF) return false;
if (ch == '-') f = -1;
}
for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
x *= f;
return true;
}
template <typename T, typename... Args, typename = enable_if_integral<T>>
inline bool read(T &x, Args &... args) { return read(x) && read(args...); }
ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); }
ll fpow(ll a, ll b, ll m)
{
ll r = 1;
for (; b; b >>= 1, a = a * a % m)
if (b & 1) r = r * a % m;
return r;
}
constexpr double eps = 1e-8;
inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }
const int N = 1e5 + 50;
ull base[N], hs[N];
inline ull get_hash(int l, int r)
{
return hs[r] - hs[l] * base[r - l];
}
char s[N];
int main() int main()
{ {
int T, n; for (int i = *base = 1; i < N; i++) base[i] = base[i - 1] * 131;
double p; map<ull, int> M;
scanf("%d", &T); for (int m, l; ~scanf("%d%d%s", &m, &l, s);)
while (T--)
{ {
scanf("%d%lf", &n, &p); int n = strlen(s);
for (int i = 1; i <= n; i++) for (int i = 1; s[i - 1]; i++) hs[i] = hs[i - 1] * 131 + s[i - 1];
cin >> x[i]; // for (int i = 0; i < n; i += 3) printf("%d\n", get_hash(i, i + 3));
a[0] = 0; int ans = 0;
int co = 1; for (int i = 0; i < l && i + m * l < n; i++)
for (int i = 0; i <= n; i++) {
for (int j = i + 1; j <= n; j++) M.clear();
a[co++] = x[i] + x[j]; for (int j = i; j < i + m * l; j += l) M[get_hash(j, j + l)]++;
sort(a, a + co); if (M.size() == m) ans++;
n = (1.0 - p < eps) ? n : (int)(p * pow(2, n)); for (int j = i + m * l; j + l <= n; j += l)
cout << a[n - 1] << endl; {
M[get_hash(j, j + l)]++;
ull x = get_hash(j - m * l, j - m * l + l);
M[x]--;
if (M[x] == 0) M.erase(x);
if (M.size() == m) ans++;
}
}
printf("%d\n", ans);
} }
return 0; return 0;
} }

@ -0,0 +1,90 @@
#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#include <bits/stdc++.h>
using namespace std;
#define CRP(t, x) const t &x
#define OPX(op, t, x) operator op(CRP(t, x))
#define OPL(t, x) bool OPX(<, t, x) const
#define FIL(x, v) memset(x, v, sizeof(x))
#define CLR(x) FIL(x, 0)
#define NE1(x) FIL(x, -1)
#define INF(x) FIL(x, 0x3f)
#ifndef _DEBUG
#define _DEBUG 0
#endif // !_DEBUG
#define IFD if (_DEBUG)
typedef int64_t ll, i64;
typedef uint64_t ull, u64;
template <typename T>
using enable_if_arithmetic = typename enable_if<is_arithmetic<T>::value>::type;
template <typename T>
using enable_if_integral = typename enable_if<is_integral<T>::value>::type;
inline char getchar(int)
{
static char buf[64 << 20], *S = buf, *T = buf;
if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + S;
return S == T ? EOF : *S++;
}
template <typename T, typename = enable_if_integral<T>>
inline bool read(T &x)
{
int ch = x = 0;
while (!isdigit(ch = getchar()))
if (ch == EOF) return false;
for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
return true;
}
template <typename T, typename... Args, typename = enable_if_integral<T>>
inline bool read(T &x, Args &... args) { return read(x) && read(args...); }
ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); }
ll fpow(ll a, ll b, ll m)
{
ll r = 1;
for (; b; b >>= 1, a = a * a % m)
if (b & 1) r = r * a % m;
return r;
}
constexpr double eps = 1e-8;
inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }
const int N = 2050;
ll a[N];
int vis[N];
struct pa
{
int i, j;
ll v;
OPL(pa, rhs)
{
if (v > rhs.v) return true;
if (v < rhs.v) return false;
if (i > rhs.i) return true;
if (i < rhs.i) return false;
return j > rhs.j;
}
};
ll sq(ll x) { return x * x; }
int main()
{
for (int n, k, t = 1; read(n, k); t++)
{
for (int i = 0; i < n; i++) read(a[i]);
sort(a, a + n);
priority_queue<pa> H;
// for (int i = 0; i < n; i++)
// for (int j = 0; j < i; j++)
// H.push({i, j, sq(a[i] - a[j])});
for (int i = 1; i < n; i++)
H.push({i - 1, i, sq(a[i - 1] - a[i])});
ll ans = 0;
for (; k && !H.empty(); H.pop())
{
auto x = H.top();
if (vis[x.i] == t || vis[x.j] == t) continue;
ans += x.v;
vis[x.i] = vis[x.j] = t;
k--;
}
printf("%lld\n", ans);
}
return 0;
}

@ -13,7 +13,39 @@ using namespace std;
#define _DEBUG 0 #define _DEBUG 0
#endif // !_DEBUG #endif // !_DEBUG
#define IFD if (_DEBUG) #define IFD if (_DEBUG)
typedef long long ll, i64; typedef int64_t ll, i64;
typedef uint64_t ull, u64;
template <typename T>
using enable_if_arithmetic = typename enable_if<is_arithmetic<T>::value>::type;
template <typename T>
using enable_if_integral = typename enable_if<is_integral<T>::value>::type;
inline char getchar(int)
{
static char buf[64 << 20], *S = buf, *T = buf;
if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + S;
return S == T ? EOF : *S++;
}
template <typename T, typename = enable_if_integral<T>>
inline void read(T &x)
{
int ch = x = 0, f = 1;
while (!isdigit(ch = getchar()))
if (ch == '-') f = -1;
for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';
x *= f;
}
template <typename T, typename... Args, typename = enable_if_integral<T>>
inline void read(T &x, Args &... args) { read(x), read(args...); }
ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a % b); }
ll fpow(ll a, ll b, ll m)
{
ll r = 1;
for (; b; b >>= 1, a = a * a % m)
if (b & 1) r = r * a % m;
return r;
}
constexpr double eps = 1e-8;
inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }
int main() int main()
{ {

Loading…
Cancel
Save