题面:https://www.cnblogs.com/Juve/articles/11790223.html

96:

刚一看以为是水题,直接等差数列求和就好了,然后发现模数不是质数,还要1e18*1e18,就弃了,看T3,然后看错题了,打了个dij的40分暴力

然后看T1发现我好像会一个叫做慢速乘的东西(颓AlpaCa博客颓到的,现在应该是我的模板的第二个),然后就不用打高精了,

至于模数不是质数,因为答案一定是整数,而我的式子最终要除以4,所以就在乘之前先让它除,然后乘,然后T1就A了,

T2打了个n方暴力,骗到75,rk6还是近几次最好?可能是我太垃圾了。。。

T1:

上面都说过了,不再细说

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
int x,y,xx,yy,tot=;
int ans=,mod;
int mul(int a,int b,int p){
int res=;
while(b){
if(b&) res=(res+a)%p;
a=(a+a)%p;
b>>=;
}
return res;
}
signed main(){
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%lld%lld%lld%lld%lld",&x,&y,&xx,&yy,&mod);
int p=(x+y-),q=(x+yy-),pp=(xx+y-),qq=(xx+yy-);
int xkl1=(p+q+pp+qq),xkl2=(yy-y+),xkl3=(xx-x+);
while(tot<&&xkl1%==){
xkl1/=;
++tot;
}
while(tot<&&xkl2%==){
xkl2/=;
++tot;
}
while(tot<&&xkl3%==){
xkl3/=;
++tot;
}
ans=mul(mul(xkl2,xkl3,mod)%mod,xkl1,mod)%mod;
printf("%lld\n",ans);
return ;
}

T2:

就贪心地扫,二分最大不可行的位置,然而n2logn2复杂度不够优秀,我们倍增缩小二分的区间

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define int long long
#define re register
using namespace std;
inline int read(){
re int x=;re char ch=getchar();
while(ch<''||ch>'') ch=getchar();
while(ch>=''&&ch<=''){
x=(x<<)+(x<<)+ch-'';
ch=getchar();
}
return x;
}
const int MAXN=1e6+;
int n,m,a[MAXN],b[MAXN],ans=;
int staa[MAXN],stab[MAXN],topa,topb;
bool check(int l,int r){
topa=topb=;
for(int i=l;i<=r;++i) staa[++topa]=a[i],stab[++topb]=b[i];
sort(staa+,staa+topa+),sort(stab+,stab+topb+);
int tot=;
for(int i=;i<=topa;++i){
tot+=staa[i]*stab[i];
if(tot>m) return ;
}
return ;
}
int get(int pos){
int poss=;
for(int i=;;++i){
poss=i;
if(pos+(<<i)->n) break;
if(!check(pos,pos+(<<i)-)){
poss=i;
break;
}
}
int l=pos+(<<(poss-))-,r=pos+(<<poss)-;
int res=l;
while(l<=r){
int mid=(l+r)>>;
if(check(pos,mid)) res=max(res,mid),l=mid+;
else r=mid-;
}
return res+;
}
signed main(){
freopen("pair.in","r",stdin);
freopen("pair.out","w",stdout);
n=read(),m=read();
for(re int i=;i<=n;++i) a[i]=read();
for(re int i=;i<=n;++i) b[i]=read();
for(re int i=;i<=n;){
i=get(i);
++ans;
}
printf("%lld\n",ans);
return ;
}

T3:

不太会

97:

T1发现了50分性质就跑了,T2感觉是个sb的dp,但是由于我设的状态,导致他有8个转移,复杂度也只能过70分,T3玄学原因10分暴力都挂了

dp要再复习,dp渣有什么好说的?

发下题解发现我不懂T1的解释,T2又太水了,导致没什么可讲的

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
const int MAXN=1e5+,mod=1e9+;
int n,a[MAXN],cnt=,ans=,tong[MAXN];
int q_pow(int a,int b,int p){
int res=;
while(b){
if(b&) res=res*a%p;
a=a*a%p;
b>>=;
}
return res;
}
signed main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%lld",&n);
for(int i=;i<=n;++i){
scanf("%lld",&a[i]);
++tong[a[i]];
cnt+=(a[i]==-);
}
ans=(q_pow(,n-,mod)-+mod)%mod;
for(int i=;i<=n;++i){
ans=(ans-q_pow(,tong[i],mod)++mod)%mod;
}
printf("%lld\n",ans);
return ;
}

T2:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
#define re register
using namespace std;
const int mod=1e9+;
int t,n,s,f[][];
signed main(){
freopen("flower.in","r",stdin);
freopen("flower.out","w",stdout);
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&n,&s);
f[][]=f[][]=s;
f[][]=s*s%mod;
f[][]=(s*s%mod*s%mod-s+mod)%mod;
for(int i=;i<=n;++i){
f[i][]=(f[i-][]*(s-)%mod+f[i-][]*(s-)%mod)%mod;
f[i][]=(f[i-][]*(s-)%mod+f[i-][]*(s-)%mod+f[i-][]*(s-)%mod)%mod;
}
printf("%lld\n",f[n][]%mod);
}
return ;
}

T3:

不会,DEE树钛锯蜡

98:

全程划水,然后T130分暴力又挂了,因为限制的循环层数太小,导致没跑出来

T2一个错误的状压dp水了35分

好吧我现在只会T2

设定01状态,预处理出每个点i,点亮它j秒后那些灯状态会取反,然后倒着转移

话说Yu-shi给我讲的时候我一直理解成正序还说服了自己,我真是太bang了

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,fa[],zt[],s,dp[][],ans=0x3f3f3f3f;
bool f[][(<<)+];
int calc(int state){
int res=;
for(int i=;i<=n;++i){
if(state&(<<(i-))){
res^=(<<(fa[i]-));
}
}
return res;
}
void print(int sta){
for(int i=;i<=n;++i){
if(sta&(<<(i-))) cout<<;
else cout<<;
}
cout<<' ';
for(int i=n;i>=;--i){
if(sta&(<<(i-))) cout<<;
else cout<<;
}
cout<<' ';
}
int main(){
freopen("decoration.in","r",stdin);
freopen("decoration.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;++i) scanf("%d",&fa[i]);
for(int i=;i<=n;++i){
scanf("%d",&zt[i]);
s|=(zt[i]<<(i-));
int p=i;
dp[i][]=<<(i-);
p=fa[p];
for(int j=;j<=n;++j,p=fa[p]){
if(p!=) dp[i][j]=dp[i][j-]|(<<(p-));
else dp[i][j]=dp[i][j-];
}
}
f[][]=;
for(int i=;i<=n;++i){
for(int s=;s<(<<n);++s){
f[i][s]|=f[i-][s];
for(int j=;j<=n;++j){
f[i][s^dp[j][i]]|=f[i-][s];
}
}
}
for(int i=;i<=n;++i){
if(f[i][s]){
ans=i;
break;
}
}
printf("%d\n",ans);
return ;
}

csp-s模拟9697题解的更多相关文章

  1. [CQOI2012]模拟工厂 题解(搜索+贪心)

    [CQOI2012]模拟工厂 题解(搜索+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1327574 链接题目地址:洛谷P3161 BZOJ P26 ...

  2. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  3. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  4. HGOI NOIP模拟4 题解

    NOIP国庆模拟赛Day5 题解 T1 马里奥 题目描述 马里奥将要参加 NOIP 了,他现在在一片大陆上,这个大陆上有着许多浮空岛,并且其中一座浮空岛上有一个传送门,马里奥想要到达传送门从而前往 N ...

  5. 10.8 wtx模拟题题解

    填坑 orz w_x_c_q w_x_c_q的模拟赛(150pts,炸了) money 题目背景: 王小呆又陷入自己的梦里.(活在梦里...) 题目描述: 王小呆是一个有梦想的小菜鸡,那就是赚好多好多 ...

  6. [NOIP模拟13]题解

    A.矩阵游戏 其实挺水的? 考场上根本没有管出题人的疯狂暗示(诶这出题人有毛病吧这么简单的东西写一大堆柿子),而且推公式能力近乎没有,所以死掉了. 很显然乘法有交换率结合率所以操作顺序对最终结果没什么 ...

  7. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  8. 【洛谷】xht模拟赛 题解

    前言 大家期待已久并没有的题解终于来啦~ 这次的T1和HAOI2016撞题了...深表歉意...表示自己真的不知情... 天下的水题总是水得相似,神题各有各的神法.--<安娜·卡列妮娜> ...

  9. 10.9 guz模拟题题解

    感谢@guz 顾z的题题解 考试共三道题,其中 第一题help共10个测试点,时间限制为 1000ms,空间限制为 256MB. 第二题escape共20个测试点,时间限制为1000ms2000ms, ...

随机推荐

  1. 21-6-数组相关api

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 在IDEA中用Gradle构建项目时使用lombok以依赖出现出错

    情景: 之情一直是使用Maven构建的项目并且导入依赖后都可以正常使用,但是在换成Gradle时出现了不论使用什么版本的lombok的依赖都会提示@Sl4j注解的log找不到,但是编辑界面是不会报错的 ...

  3. linux部署tomcat项目

    unzip apache-tomcat-7.0.55-windows- x64.zip     解压zip文件 chmod +x startup.sh shutdown.sh catalina.sh ...

  4. 杭电多校第一场-B-Operation

    题目描述 There is an integer sequence a of length n and there are two kinds of operations:0 l r: select ...

  5. Linux系统的buff/cache缓存清理脚本

    cacheClean.sh #!/bin/bash # 日期: # 作者: 黄慧丰/何鹏举 # 说明: fastdfs所在的linux系统的buffer cache过大, 且并没有有效的自动回收, 因 ...

  6. [翻译]windows下 连接到 bitnami的phpmyadmin

    bitnami 因为安全考虑,只能 localhost 访问 phpmyadmin 为了能通过SSH 隧道访问 phpMyAdmin,你需要一个ssh 客户端.参考文章介绍使用中选择使用 PuTTY, ...

  7. kafka?kafaka! kafka...

    kafka?kafaka! Kafka... kafka是什么? 答:Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅 ...

  8. bzoj1057: [ZJOI2007]棋盘制作 [dp][单调栈]

    Description 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源 于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应八八六十四卦,黑白对应 ...

  9. hdu多校第五场1006 (hdu6629) string matching Ex-KMP

    题意: 给你一个暴力匹配字符串公共前缀后缀的程序,为你对于某个字符串,暴力匹配的次数是多少. 题解: 使用扩展kmp构造extend数组,在扩展kmp中,设原串S和模式串T. extend[i]表示T ...

  10. idea 社区版+spring boot+ssm+swagger创建rest api

    新手上路,出了好多错,记录一下 1.创建数据库:springBootSsmTest 2.打开IDEA创建 Spring boot项目:File——New——Project——Spring Assist ...