2017.3.1 xiaoyimi测试
第一题太亏了、、
TMD p竟然是定值、那还输入NM啊、、、
样例p=4还是错的、、、
实际上看到这个题就已经有了30分做法,也有了一点正解的思路
但是、、、tmd p是定值、、、
感人的爆0了
30分做法:
30分代码:
#include<iostream>
#include<cstdio>
using namespace std;
#define ll int
ll x,y,n,i,p;
long long ans;
ll tong[300001];
int ni[300001];
ll jilu;
ll lin;
long long quai(long long a,long long b)
{
long long daan=1;
while(b!=0)
{
if(b%2==1)daan=daan*a%p;
b/=2;
a=(a*a)%p;
}
return daan;
}
int main()
{
freopen("tyrrell.in","r",stdin);
freopen("tyrrell.out","w",stdout);
cin>>n>>p;
ans=1;
tong[1]++;
for(i=1;i<p;i++)ni[i]=quai(i,p-2);
for(i=1;i<=n;i++)
{
// if(i==n/2)cout<<"pp";
lin=n-i+1;
if(!(lin%p))
{
lin=lin/p%p;
jilu++;
}
ans=1ll*ans*lin%p;
if(!(i%p))
{
ans=1ll*ans*ni[i/p%p]%p;
jilu--;
}else ans=1ll*ans*(ni[i%p])%p;
if(jilu>0){tong[0]++;}else {tong[ans]++;}
}
for(i=0;i<p;i++)
{
tong[i]%=29;
if(tong[i]>=10)
{
printf("%c",tong[i]-10+'A');
}else printf("%d",tong[i]);
}
}
更高分做法:NNT+数位dp:
没学、
此题有线段树做法,即
会了吧?一个简单的前缀和+两颗线段树、
但很慢且不好打而且不会维护(至少对于我)
然后上巨难理解的代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define rep(i, b) for(int i=0,nn=int(b); i<nn;++i)
#define REP(i,a,b) for(int i=int(a),nn=int(b);i<=nn;++i)
#define VEP(i,a,b) for(int i=int(a),nn=int(b);i>=nn;--i)
typedef long long ll;
using namespace std;
const int N = 100010;
struct qury {
int tp, l, r, d, tm;
qury(int tp=0,int l=0,int r=0,int d=0,int tm=0)
:tp(tp), l(l), r(r), d(d), tm(tm){}
} qy[N];
int xbt[N], ybt[N], abt[N], lod[N], rod[N], px[N], py[N];
int _x, _y, __x, __y, n, m, as1[N], as2[N];
inline void in(int &x) {
char ch=getchar(); int f=1;
for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;
for (x=0; ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-48;
x *= f;
}
inline bool lcmp(int a, int b) { return qy[a].l < qy[b].l; }
inline bool rcmp(int a, int b) { return qy[a].r < qy[b].r; }
inline void xbt_ad(int x,int v) {for(;x<=m;x+=x&(-x))xbt[x]+=v;}
inline void ybt_ad(int x,int v) {for(;x<=m;x+=x&(-x))ybt[x]+=v;}
inline void abt_ad(int x,int v) {for(;x<=m;x+=x&(-x))abt[x]+=v;}
inline int xbt_qy(int x,int sm=0) {for(;x;x-=x&(-x))sm+=xbt[x];return sm;}
inline int ybt_qy(int x,int sm=0) {for(;x;x-=x&(-x))sm+=ybt[x];return sm;}
inline int abt_qy(int x,int sm=0) {for(;x;x-=x&(-x))sm+=abt[x];return sm;}
inline void come(qury ths) {
int tp=ths.tp, d=ths.d, tm=ths.tm;
if (tp==1) xbt_ad(tm, d);
if (tp==2) ybt_ad(tm, d);
if (tp==3) as1[tm] = abt_qy(tm);
}
inline void leave(qury ths) {
int tp=ths.tp, d=ths.d, tm=ths.tm;
if (tp==1) xbt_ad(tm, -d);
if (tp==2) ybt_ad(tm, -d);
if (tp==3) as2[tm] = abt_qy(tm);
}
inline void contribute(int x, int y) {
int xl, xr, yl, yr, l, r, mid, tl, tr;
l = 0, r = m, xl = m+1;
while (l <= r) { mid = (l+r)>>1;
if (x + xbt_qy(mid)>=_x) xl=mid, r=mid-1;
else l = mid+1;
}
l = 0, r = m, xr = -1;
while (l <= r) { mid = (l+r)>>1;
if (x + xbt_qy(mid)<=__x) xr=mid, l=mid+1;
else r = mid-1;
}
l = 0, r = m, yl = m+1;
while (l <= r) { mid = (l+r)>>1;
if (y + ybt_qy(mid)>=_y) yl=mid, r=mid-1;
else l = mid+1;
}
l = 0, r = m, yr = -1;
while (l <= r) { mid = (l+r)>>1;
if (y + ybt_qy(mid)<=__y) yr=mid, l=mid+1;
else r = mid-1;
}
tl = max(xl, yl), tr = min(xr, yr);
if (tl < 1) tl=1; if (tr > m) tr = m;
if (tl > tr) return;
abt_ad(tl, 1) , abt_ad(tr+1, -1);
}
int main() {
freopen("particle.in", "r", stdin);
freopen("particle.out", "w", stdout);
in(n), in(_x), in(_y), in(__x), in(__y);//读入
REP(i, 1, n) in(px[i]), in(py[i]);
in(m); REP(i, 1, m) {
in(qy[i].tp), in(qy[i].l), in(qy[i].r);
if (qy[i].tp != 3) in(qy[i].d);
qy[i].tm = i, lod[i]=i, rod[i]=i;
}
sort(lod+1, lod+1+m, lcmp);
sort(rod+1, rod+1+m, rcmp);
int x, y, li=0, ri=0;
REP(i, 1, n) { x=px[i], y=py[i];
while (li < m && qy[lod[li+1]].l<=i) come(qy[lod[++li]]);
contribute(x, y);
while (ri < m && qy[rod[ri+1]].r<=i) leave(qy[rod[++ri]]);
}
REP(i, 1, m) if (qy[i].tp==3) printf("%d\n", as2[i]-as1[i]);
return 0;
}
扫描线+树状数组*3+差分**3+二分+双排序离散+3重判定
这个码理解了,思维层次就会上升很大的一个高度、
理解难度直逼TA 的 running
模拟推了好几遍(ps:模拟代码真的不是理解代码的一个好方法)
读着都快哭了、、
2017.3.1 xiaoyimi测试相关推荐
- 诸暨软件测试,诸暨市2017年中考体育测试项目测试规范及评分标准
诸暨市2017年中考体育测试项目测试规范及评分标准 日前,诸暨市教育局公布了明年中考体育测试规范及评分标准.根据通知要求,2017年中考体育测试继续采用机考模式,球类项目(篮球运球上篮.排球垫球.足球 ...
- 2017.4.17------软件测试的艺术+整理以前的摘记
2017.4.17 以下内容来自<软件测试的艺术> 第1页--14页.供自己学习使用. 第一章 软件测试:就是一个过程或一个系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其 ...
- 在现有的Visual Studio 2017中设置和测试Python环境
目录 介绍 背景 设置Python环境 结论 介绍 根据Stack Overflow开发者调查,在2018年,Python成为最受欢迎的语言列表.Python是用于机器学习.Web开发和数据科学的跨平 ...
- 2017.10.2 loli测试
T1+T2 200 T3惨遭爆零 所有回文串都是中心对称的,所以只要不存在长度为2的和长度为3的即可 排列组合可知 ans=(m)*(m-1)*(m-2)^(n-2) 码: #include< ...
- 2017.8.10 loli 测试
在发现顺序错误之后 ., rk2 (rk1 qzh太(chao)强(ti)了(jie) ) 而lzz的题解非常诡异,竟然要用gcd .' 而我似乎暴力枚举就过了(注意操作顺序,不要太自信). #i ...
- 2017.8.8 loli测试
太难了不会 #include<algorithm> #include <iostream> #include <stdlib.h> #include <str ...
- 2017.4.22 loli测试
冒着爆零的风险rank1了.. 非常看脸的T1得了50,结果正解也是要看脸的... T2是计数原理分组dp...爆零 T3的题答丧心病狂..只有10 题答就不截了.
- 2017.4.2 loli测试
全当攒rp了. 其实这个题是A了的 写的也是正解 然而喜闻乐见的写残了 又一次倒在正解门口 没加前缀和优化,,,没加n=m的特判,挂成了50... 非常失败' 码: #include< ...
- 2017.3.12 lzy 测试
第一题: 个人做的第4个网络流题,很幸运的A了 这是比较直观的网络流建模题了: #include<iostream> #include<cstdio> using namesp ...
最新文章
- 香港中文大学(深圳)罗元教授招收计算机与信息工程全奖博士
- Android’s PreferenceActivity for all API versions
- [html] 如何在页面引用外部的html页面?
- YII2 服务器验证码不显示
- sql删除快还是update快_下班回家,是骑自行车减肥快还是走路减肥快?
- MySQL(一)存储引擎
- url参数拼接 php,PHP解析url并得到url参数方法总结
- 计算机中的类型,计算机中各种件文的类型及其作用.doc
- Python实现空间直角坐标转高斯克吕格平面坐标
- TKMybatis的使用大全和例子(example、Criteria、and、or)
- dw自动生成html,如何用Dreamweaver快速创建HTML代码
- 小米手机隐私相册在哪?将你的照片锁进“保险柜”
- Excel中的单元格引用
- 淘宝新店如何提升店铺排名
- 脂肪肝青睐“三围”人士 不吃早餐容易诱发
- java 中Shallow Heap与Retained Heap的区别
- 没有大数据就没有智慧城市
- CRM系统中的线索、客户、联系人、商机
- 《道德经》的三个重要版本
- Oracle之cmd 常用命令
热门文章
- Spark生态圈及安装
- axure命令行_axure怎么做计算器
- 【python】lambda函数
- 用PaddlePaddle(飞浆)实现车牌识别
- SQL Server IN语句使用举例
- linux 巡检手册,服务器设备系统巡检标准手册.doc
- oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...
- winform防止sqlserver注入_ASP.NET Core 中的 依赖注入介绍
- 怎么实现两周联动加减速_LOL:野辅联动成版本主旋律,三大辅助对线游走兼备...
- 0分配不到地址_图解 Go 内存分配器