题面: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. 微信小程序之模板消息推送

    最近在用sanic框架写微信小程序,其中写了一个微信消息推送,还挺有意思的,写了个小demo 具体见官方文档:https://developers.weixin.qq.com/miniprogram/ ...

  2. spring开发案例配合mysql

    实体类: package cn.mepu.domain; import java.io.Serializable; /** * 账户实体类 * @author shkstart * @create 2 ...

  3. WordTEX

    https://www.andrew.cmu.edu/user/twildenh/wordtex/

  4. rsync+inotify同步备份文件

    前言 rsync作用:man rsync可以看到解释为a fast, versatile, remote (and local) file-copying tool,主要进行文件的同步. inotif ...

  5. Vue.js和Webpack

    Vue.js Vue简单介绍 是一个轻量级的渐进式框架,一个前端项目可以使用使用Vue.js的一两个特性也可以整个项目都用Vue.js,很方便实现项目的增量开发 Vue.js的使用:() 在html页 ...

  6. 官网下载 Linux 上需要的 MySQL的步骤

    1.输入MySQL 官网地址  https://dev.mysql.com/  选择 download ->Community->MySQL Community Server 点击 MyS ...

  7. Struts2入门的第一个应用

    今天开始学习struts2技术,现在struts2的技术已经超过了struts1,所以本人就没有学习struts1了,当然这个肯定不会影响我们后面的学习,先来看一下工程的目录结构: 说明: query ...

  8. DELPHI中如何闪烁应用程序窗口或任务栏按钮

    使用FlashWindowEx函数: 一.设置FlashWInfoDelphi中TFlashWInfo申明如下:TypeTFlashWInfo = record cbSize : LongInt; h ...

  9. 8.RabbitMQ 消息传递Java对象

    通过消息服务器传递Java对象,Java类必须实现序列化接口,可以把Java对象转化为字节数组,从消费者或生产者传递到另外一个JVM中,一定需要两个JVM共享这个类,比如是UserInfo类.   1 ...

  10. Hadoop安装成功之后,访问不了web界面的50070端口怎么解决?

    Hadoop安装成功之后,访问不了web界面的50070端口 先查看端口是否启用 [hadoop@s128 sbin]$ netstat -ano |grep 50070 然后查看防火墙的状态,是否关 ...