这个真的是一个 \(nb\) 题。

考试快要结束的时候,在机房中只能听到此起彼伏的撕吼。

啊~~~~~~~~~~

然后人们预测这自己的得分。

\(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\) \(\color{red}{\huge{0}}\)

然后,没有然后了。

一共一半左右爆 \(\color{red}{\huge{0}}\)

然后战神直接 \(\color{gold}{\huge{260}}\)

\(\huge{\text{ % % %}}\)

Emotional Flutter

一个细节很多很多的贪心题目,然后只有一个水的一批的样例。

然后自己用着假的暴力拍着假的正解然后使用假的数据生成器拍了一堆 \(\color{green}{\huge{Accepted}}\)

然后险些有分,反正就是这个题目抱零了。。。

贪心一下,然后注意细节就好。。



#include<bits/stdc++.h>
using std::cout; using std::endl;
#define try(i,a,b) for(register signed i=a;i<=b;++i)
#define throw(i,a,b) for(register signed i=a;i>=b;--i)
#define asm(i,x) for(register signed i=head[x];i;i=edge[i].next)
namespace xin_io
{
#define sb(x) cout<<#x" = "<<x<<' '
#define jb(x) cout<<#x" = "<<x<<endl
#define debug cout<<"debug"<<endl
#define gc() p1 == p2 and (p2 = (p1 = buf) + fread(buf,1,1<<20,stdin),p1 == p2) ? EOF : *p1++
char buf[1<<20],*p1 = buf,*p2 = buf; int ak; typedef long long ll; typedef unsigned long long ull;
class xin_stream{public:template<typename type>inline xin_stream &operator >> (type &s)
{
register int f = 0;s = 0; register char ch = gc();
while(!isdigit(ch)) {f |= ch == '-'; ch = gc();}
while( isdigit(ch)) s = (s << 1) + (s << 3) + (ch xor 48),ch = gc(); return s = f ? -s : s,*this;
}}io;
}
#define int long long
using namespace xin_io; static const int maxn = 1e6+10,inf = 1e9+7; const ll llinf = 1e18+7;
namespace xin
{
int l[maxn],r[maxn],sum[maxn];
int T;
class xin_data
{
private:
friend bool operator < (xin_data x,xin_data y)
{return x.l == y.l ? x.r < y.r : x.l < y.l;}
public:
int l,r;
xin_data(){}
xin_data(int l,int r):l(l),r(r){}
}d[maxn]; int zhi = 0;
inline short main()
{
io >> T;
while(T--)
{
register int s,k,n,ok = 1; io >> s >> k >> n;
zhi = 0;
try(i,1,n)
{
register int x; io >> x;
if(i & 1) x += s;
else x -= s,x %= k;
if(x > k) ok = 0;
sum[i] = sum[i-1] + x;
if(i & 1)
l[i] = sum[i-1] + 1,r[i] = sum[i] - 1;
// sb(l[i]); jb(r[i]);
}
if(!ok) {puts("NIE"); continue;}
if(((n & 1) and sum[n] <= k) or (!(n & 1) and sum[n-1] <= k)) {puts("TAK"); continue;}
for(register int i=1;i<=n;++i,++i)
{
register int temp_l = l[i] % k,temp_r = r[i] % k;
if(temp_r < temp_l)
d[++zhi] = xin_data(0,temp_r),d[++zhi] = xin_data(temp_l,k-1);
else d[++zhi] = xin_data(temp_l,temp_r);
}
ok = 1;
std::sort(d+1,d+zhi+1);
if(d[1].l) {puts("TAK"); continue;}
int maxx = 0;
try(i,1,zhi)
{
if(maxx < d[i].l - 1) {puts("TAK"); ok = 0;break;}
maxx = std::max(maxx,d[i].r);
}
if(!ok) continue;
if(maxx < k - 1) puts("TAK");
else puts("NIE");
}
return 0;
}
}
signed main() {return xin::main();}

Medium Counting

这个计数题目看起来就不是很友好。。。。

我们考虑狂搜,然后抱零。

因为没有给任何狂搜的分数。

这么不给我 \(XIN\) 面子的嘛???

然后气展了。。。

然后应该是用记忆化来做。。

好办的很。。。



#include<bits/stdc++.h>
using std::cout; using std::endl;
#define try(i,a,b) for(register signed i=a;i<=b;++i)
#define throw(i,a,b) for(register signed i=a;i>=b;--i)
#define asm(i,x) for(register signed i=head[x];i;i=edge[i].next)
namespace xin_io
{
#define sb(x) cout<<#x" = "<<x<<' '
#define jb(x) cout<<#x" = "<<x<<endl
#define debug cout<<"debug"<<endl
#define gc() p1 == p2 and (p2 = (p1 = buf) + fread(buf,1,1<<20,stdin),p1 == p2) ? EOF : *p1++
#define cin std::cin
int ak; typedef long long ll; typedef unsigned long long ull;
#define scanf ak = scanf
}
#define int long long
using namespace xin_io; static const int maxn = 1e6+10,inf = 1e9+7,mod = 990804011; const ll llinf = 1e18+7;
namespace xin
{
int n,m;
int f[55][51][51][30];
int a[51][51];
int xin_team(int l,int r,int p,int c)
{
register int &temp = f[l][r][p][c];
if(~temp) return temp; if(r < l) return temp = 1;
if(p > m) return temp = (l == r); if(c > 26) return temp = 0;
temp = xin_team(l,r,p,c+1);
try(i,l,r)
{
if(!(a[i][p] == c or (a[i][p] == 27 and c))) break;
(temp += (xin_team(l,i,p+1,0) * xin_team(i+1,r,p,c+1)) % mod) %= mod;
}
return temp;
}
char s[maxn];
inline short main()
{
scanf("%lld",&n);
memset(f,-1,sizeof(f));
try(i,1,n)
{
scanf("%s",s+1);
int len = strlen(s+1);
m = std::max(m,len);
try(j,1,len) a[i][j] = (s[j] == '?') ? 27 : s[j] - 'a' + 1;
}
cout<<xin_team(1,n,1,0)<<endl;
return 0;
}
}
signed main() {return xin::main();}

Huge Counting

不会,先鸽了。。

字符消除2

题目就看了老半天。。。

我们用 \(KMP\) 求出来 \(next\) 数组就可以开始狂跳了。。

真好



#include<bits/stdc++.h>
using std::cout; using std::endl;
#define try(i,a,b) for(register signed i=a;i<=b;++i)
#define throw(i,a,b) for(register signed i=a;i>=b;--i)
#define asm(i,x) for(register signed i=head[x];i;i=edge[i].next)
namespace xin_io
{
#define gc() p1 == p2 and (p2 = (p1 = buf) + fread(buf,1,1<<20,stdin),p1 == p2) ? EOF : *p1++
#define debug cout<<"debug"<<endl
#define sb(x) cout<<#x" = "<<x<<' '
#define jb(x) cout<<#x" = "<<x<<endl
#define scanf ak = scanf
typedef long long ll; typedef unsigned long long ull; int ak;
}
using namespace xin_io; static const int maxn = 1e6+10,ms = 2e5;
namespace xin
{
char s[maxn];
ull a[maxn],p[maxn];
int T,n,temp;
int next[maxn];
int b[maxn];
ull base = 13331;
void kmp(int l,int r)
{
try(i,l+1,r)
{
while(temp and b[i] xor b[temp + 1]) temp = next[temp];
if(b[i] == b[temp + 1]) temp ++;
next[i] = temp;
}
}
int q[maxn];
inline short main()
{
scanf("%d",&T); p[1] = 1;
try(i,2,ms) p[i] = p[i-1] * base;
while(T--)
{
scanf("%s",s+1);
memset(next,0,sizeof(int) * (n + 1));
memset(b,0,sizeof(int) * (n + 1));
q[0] = temp = 0;
n = strlen(s+1);
try(i,1,n) a[i] = a[i-1] * base + s[i] - 'A' + 1;
try(i,0,n)
if(a[i+1] == a[n] - a[n-i-1] * p[i + 2]) q[++q[0]] = i + 1;
if(q[1] > 1) b[q[1]] = 1; kmp(1,q[1]);
try(i,2,q[0])
{
if(q[i] <= q[i-1] * 2)
{
try(j,q[i-1]+1,q[i])
b[j] = b[j + q[i-1] - q[i]];
kmp(q[i-1],q[i]);
}
else
{
kmp(q[i-1],q[i] - q[i-1] - 1);
register int now = temp,z = 1,len =q[i] - q[i-1];
while(now)
{
if(!b[now+1] and !(len % (len - now - 1))) {b[len] = 1; break;}
now = next[now];
}
if(!b[now+1] and !(len % (len - now - 1))) b[len] = 1;
kmp(len - 1,len);
next[len] = temp;
len = q[i] - q[i-1];
try(j,1,q[i-1]) b[len + j] = b[j];
kmp(len,len+q[i-1]);
}
}
try(i,1,n) cout<<b[i];
cout<<endl;
}
return 0;
}
}
signed main() {return xin::main();}

[考试总结]noip模拟44的更多相关文章

  1. 2021.8.19考试总结[NOIP模拟44]

    T1 emotional flutter 把脚长合到黑条中. 每个黑条可以映射到统一区间,实际操作就是左右端点取模.长度大于$k$时显然不合法. 然后检查一遍区间内有没有不被黑条覆盖的点即可. 区间端 ...

  2. noip模拟44[我想我以后会碰见计数题就溜走的]

    noip模拟44 solutions 这一场抱零的也忒多了,我也只有45pts 据说好像是把几套题里面最难的收拾出来让我们考得 好惨烈啊,这次的考试我只有第一题骗了40pts,其他都抱零了 T1 Em ...

  3. 6.17考试总结(NOIP模拟8)[星际旅行·砍树·超级树·求和]

    6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前 ...

  4. 5.23考试总结(NOIP模拟2)

    5.23考试总结(NOIP模拟2) 洛谷题单 看第一题第一眼,不好打呀;看第一题样例又一眼,诶,我直接一手小阶乘走人 然后就急忙去干T2T3了 后来考完一看,只有\(T1\)骗到了\(15pts\)[ ...

  5. 5.22考试总结(NOIP模拟1)

    5.22考试总结(NOIP模拟1) 改题记录 T1 序列 题解 暴力思路很好想,分数也很好想\(QAQ\) (反正我只拿了5pts) 正解的话: 先用欧拉筛把1-n的素数筛出来 void get_Pr ...

  6. 2021.9.17考试总结[NOIP模拟55]

    有的考试表面上自称NOIP模拟,背地里却是绍兴一中NOI模拟 吓得我直接文件打错 T1 Skip 设状态$f_i$为最后一次选$i$在$i$时的最优解.有$f_i=max_{j<i}[f_j+a ...

  7. [考试总结]noip模拟23

    因为考试过多,所以学校的博客就暂时咕掉了,放到家里来写 不过话说,vscode的markdown编辑器还是真的很好用 先把 \(noip\) 模拟 \(23\) 的总结写了吧.. 俗话说:" ...

  8. 「考试」noip模拟9,11,13

    9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有 ...

  9. 6.11考试总结(NOIP模拟7)

    背景 时间分配与得分成反比,T1 20min 73pts,T2 1h 30pts,T3 2h 15pts(没有更新tot值,本来应该是40pts的,算是本次考试中最遗憾的地方了吧),改起来就是T3比较 ...

随机推荐

  1. 【LeetCode】209. 长度最小的子数组

    209. 长度最小的子数组 知识点:数组:前缀和:二分法:双指针:滑动窗口 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小 ...

  2. 20初识前端HTML(1)

    1 .HTML 1.1 网页的组成 文字 图片 链接 等元素构成.除了这些元素之外 网页中还可以包含音频 视频 等 1.2 WEB前端开发的流程 现在主流的开发流程: 前后端分离的开发模式. 美工:p ...

  3. java数据类型和类型得转换

    java数据类型 强类型语言 ​ Java是一种强类型得语言,严格要求变量要符合规定,所有变量都必须先定义再使用 java得数据类型分为两大类 值得注意得是String并不是一个数据类型,它是一个类 ...

  4. [JAVA]关于excel的jxl包的操作-创建sheet

    前言 最近玩的游戏需要记录数据, 手打excel太麻烦了 于是就学了学java的jxl操作.本来记录在有道云笔记就可以的,由于乐于分享的精神 就在博客园造了个号, 之前自己本来有做个人的网站的,奈何网 ...

  5. Python函数调用中的值传递和引用传递问题

    这一问题O' Reilly出版的"Learning Python" 2nd Edition的 13.4 节有专门论述,对于不可变(immutabe)对象,函数参数(这里是x和y)只 ...

  6. Create Shortcut for SSH Hosts

    You frequently visit host 10.0.7.141 for example. It's a waste to type "ssh gcp@10.0.7.141" ...

  7. Share Keyboard, Mouse and Clipboard between Multiple Computers

    Synergy version: 1.4.12 Server Download and install synergy-1.4.12-Linux-i686.deb on Mint 14; Run it ...

  8. 关于shell脚本——条件测试、if语句、case语句

    目录 一.条件测试 1.1.表达说明 1.2.test命令 文件测试 1.3.整数值比较 1.4.字符串比较 1.5.逻辑测试 二.if语句 2.1.单分支结构 2.2.双分支结构 2.3.多分支结构 ...

  9. Echarts 展示两条动态数据曲线

    利用Echarts 展示两条动态数据曲线,每1秒刷新一下数据,在echart官网例子基础上修改,修改了仿真数据的生成方式.生成数量,曲线数量,最总效果图如下: 详细代码如下: 遇到的主要问题点, 1, ...

  10. DVWA-sql注入(盲注)

    DVWA简介 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法 ...