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

94,95的T3都没改出来,是我太菜了。。。

凉宫春日的忧郁:

比较$x^y$和$y!$的大小,如果打高精会T掉

正解:把两个数取log,则$log_2x^y=ylog_2x$,$log_2y!=\sum\limits_{i=1}^{y}log_2i$

然后就A了

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define int long long
using namespace std;
int t,x,y;
signed main(){
freopen("yuuutsu.in","r",stdin);
freopen("yuuutsu.out","w",stdout);
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&x,&y);
long double xx=y*log2(x);
long double yy=0.0;
for(int i=;i<=y;++i){
yy+=log2(i);
}
if(xx<=yy) puts("Yes");
else puts("No");
}
return ;
}

漫无止境的八月:

如果满足的话必须保证所有%k同余的位置上的和一样,所以打个map就好了。。。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int MAXN=2e6+;
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){
if(ch=='-') f=-;
ch=getchar();
}
while(ch>=''&&ch<=''){
x=(x<<)+(x<<)+ch-'';
ch=getchar();
}
return x*f;
}
int n,k,q,a[MAXN],sum[MAXN];
unordered_map<int,int>mp;
signed main(){
freopen("august.in","r",stdin);
freopen("august.out","w",stdout);
n=read(),k=read(),q=read();
for(int i=;i<=n;++i){
a[i]=read();
sum[i%k]+=a[i];
}
for(int i=;i<k;++i) ++mp[sum[i%k]];
if(mp[sum[]]==k) puts("Yes");
else puts("No");
for(int i=;i<=q;++i){
int pos=read(),val=read();
a[pos]+=val;
--mp[sum[pos%k]];
sum[pos%k]+=val;
++mp[sum[pos%k]];
if(mp[sum[]]==k) puts("Yes");
else puts("No");
}
return ;
}
/*
5 2 5
1 1 1 2 1
3 −1
1 −1
3 1
3 1
1 −1
*/

简单计算:

$2*\sum\limits_{i=0}^{p}\lfloor\frac{i*q}{p}\rfloor=\sum\limits_{i=0}^{p}\lfloor\frac{i*q}{p}\rfloor+\lfloor\frac{(p-i)*q}{p}\rfloor$

所以原式=$(p+1)*q-\sum\limits_{i=0}^{p}[(p|i*q)?0:1]=(p+1)*q-p+gcd(p,q)$

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
int t,p,q,ans;
int gcd(int a,int b){
return b==?a:gcd(b,a%b);
}
signed main(){
freopen("simplecalc.in","r",stdin);
freopen("simplecalc.out","w",stdout);
scanf("%lld",&t);
while(t--){
scanf("%lld%lld",&p,&q);
ans=(p+)*q-p+gcd(p,q);
printf("%lld\n",ans>>);
}
return ;
}

格式化:

一个贪心,肯定是先选对容量有贡献的,即格式化后容量增加的,再选容量不增的,再选容量减少的,对于容量增加的,内部按格式化前从小到大排序,对于容量减小的,内部按格式化后的从大到小排序,然后check即可

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define int long long
using namespace std;
const int MAXN=1e6+;
int n,ans=0x3f3f3f3f3f3f3f3f,l,r;
struct node{
int pre,now,w;
friend bool operator < (node p,node q){
if(p.w>&&q.w>){
return p.pre<q.pre;
}
if(p.w<&&q.w<){
return p.now>q.now;
}
if(p.w==&&q.w==){
return p.pre>q.pre;
}
if(p.w==){
return q.w<;
}
if(q.w==){
return p.w>;
}
if(p.w>&&q.w<) return ;
if(p.w<&&q.w>) return ;
return ;
}
}a[MAXN];
bool check(int val){
for(int i=;i<=n;++i){
if(a[i].pre>val) return ;
val-=a[i].pre,val+=a[i].now;
}
return ;
}
signed main(){
freopen("reformat.in","r",stdin);
freopen("reformat.out","w",stdout);
scanf("%lld",&n);
for(int i=;i<=n;++i){
scanf("%lld%lld",&a[i].pre,&a[i].now);
r+=a[i].pre;
a[i].w=a[i].now-a[i].pre;
}
sort(a+,a+n+);
while(l<r){
int mid=(l+r)>>;
if(check(mid)) ans=min(ans,mid),r=mid;
else l=mid+;
}
printf("%lld\n",ans);
return ;
}

真相:

我好弱啊,我太菜了

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN=1e6+;
int t,n,sta[MAXN],top=,tru[MAXN],sum0[MAXN],sum1[MAXN],f[MAXN],g[MAXN];
struct node{
int opt,val;
}a[MAXN];
bool flagg=;
int calc(int p){
return (p-!=)?(p-):n;
}
vector<int>v[MAXN];
signed main(){
freopen("truth.in","r",stdin);
freopen("truth.out","w",stdout);
scanf("%d",&t);
while(t--){
top=flagg=;
scanf("%d",&n);
for(int i=;i<=n;++i){
char op[];
scanf("%s",op);
if(op[]=='+'){
a[i].opt=;
}else if(op[]=='-'){
a[i].opt=;
}else{
a[i].opt=;
scanf("%d",&a[i].val);
flagg=;
sta[++top]=i;
}
}
if(!flagg){
bool now=;
for(int i=;i<=n;++i){
if(now==){
if(a[i].opt==){
now=;
}else now=;
}else{
if(a[i].opt==){
now=;
}else now=;
}
}
if(now==) puts("consistent");
else puts("inconsistent");
continue;
}else{
bool flag=;
for(int i=;i<=top;++i){
int yy=sta[i];
++sum1[yy];
int p=yy;
bool now=;
while(a[calc(p)].opt!=){
p=calc(p);
if(now==){
if(a[p].opt==) now=;
else now=;
}else{
if(a[p].opt==) now=;
else now=;
}
sum1[yy]+=now;
}
p=yy;
now=;
while(a[calc(p)].opt!=){
p=calc(p);
if(now==){
if(a[p].opt==) now=;
else now=;
}else{
if(a[p].opt==) now=;
else now=;
}
sum0[yy]+=now;
}
}
int num=;
for(int i=;i<=top;++i){
f[a[sta[i]].val]+=sum0[sta[i]];
g[a[sta[i]].val]+=sum1[sta[i]];
num+=sum0[sta[i]];
}
for(int i=;i<=n;++i){
num-=f[i];
num+=g[i];
if(num==i){
flag=;
break;
}
num-=g[i];
num+=f[i];
}
if(flag) puts("consistent");
else puts("inconsistent");
for(int i=;i<=top;++i){
f[a[sta[i]].val]=g[a[sta[i]].val]=;
sum0[sta[i]]=sum1[sta[i]]=;
}
}
}
return ;
}
/*
1
3
$ 0
-
- */

csps模拟9495凉宫春日的忧郁,漫无止境的八月,简单计算,格式化,真相题解的更多相关文章

  1. [CSP-S模拟测试]:凉宫春日的忧郁(乱搞)

    题目传送门(内部题101) 输入格式 第一行输入一个整数$T$,表示数据组数. 接下来$T$行,每行两个数$X,Y$,表示$T$组数据. 输出格式 输出共有$T$行,对于每一组数据,如果$X^Y\le ...

  2. [CSP-S模拟测试]:慢无止境的八月(乱搞)

    题目传送门(内部题102) 输入格式 第一行三个正整数$n,k,q$,分别表示数列长度,操作长度和修改个数. 第二行$n$个数,表示给出的终止数列. 接下来$q$行,每行两个数$pos,dx$,表示将 ...

  3. csp-s模拟测试b组加餐antipalindome,randomwalking,string题解

    题面:https://www.cnblogs.com/Juve/articles/11599318.html antipalindome: 打表找规律? 对于一个回文串,我们只要保证3位以内不回文即可 ...

  4. csp-s模拟测试94

    csp-s模拟测试94 一场简单题,打爆了.$T1$脑抽分解质因数准备分子分母消,想了半天发现$jb$互质直接上天,果断码了高精滚蛋.$T2$无脑手玩大样例,突然灵光一闪想到映射到前$K$大小的区间, ...

  5. [CSP-S模拟测试94]题解

    A.凉宫春日的忧郁 高精硬上似乎跑不过,其实可以都取个$log$.那么只需要比较$y\times log ^x$和$\sum \limits _{i=1}^y log^i$就好了. #include& ...

  6. 反省——关于csp-s模拟50

    本人于搜索csp-s模拟49题解时,有意识地点开了一篇关于csp-s模拟50T2的题解,并知道了题解是二维前缀和以及四维偏序. 更重要的是,那篇博客说有解法二,叫二维莫队. 于是我上网搜索二维莫队,结 ...

  7. csp-s模拟测试99

    csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...

  8. csp-s模拟测试98

    csp-s模拟测试98 $T1$??不是我吹我轻松手玩20*20.$T2$装鸭好像挺可做?$T3$性质数据挺多提示很明显? $One$ $Hour$ $Later$ 这$T1$什么傻逼题真$jb$难调 ...

  9. csp-s模拟测试97

    csp-s模拟测试97 猿型毕露.水题一眼秒,火题切不动,还是太菜了. $T1$看了一会儿感觉$woc$期望题$T1??$假的吧??. $T2$秒. $T3$什么玩意儿. 40 01:24:46 00 ...

随机推荐

  1. 基于LNMP部署DiscuzX

    [root@nginx~]# unzip ComsenzDiscuz-DiscuzX-master.zip[root@nginxDiscuzX]# mv upload/ /usr/local/ngin ...

  2. 笔记43 Spring Security简介

    基于Spittr应用 一.Spring Security简介 Spring Security是为基于Spring的应用程序提供声明式安全保护的安全 性框架.Spring Security提供了完整的安 ...

  3. zepto-touch事件

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 解决小程序sessionid不一致

    由于小程序端两次请求的 sessionid 不一致, 导致后端无法取得 session,解决办法:在登录时获取sessionid //第一次请求登录接口时保存到sessionid中 success: ...

  5. js简单图片切换

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

  6. 47 ubuntu指令整理学习

    0 引言 在使用ubutnu时,积累了大量命令笔记.但是这些笔记比较零散,没有系统性,不便于查找和使用.通过系统性.分门别类地整理,希望可以增强对指令的记忆,提高工作效率,对ubuntu的使用更加地道 ...

  7. Oozie安装

    Oozie的安装与部署 1.解压Oozie $ tar -zxf /opt/softwares/oozie-4.0.0-cdh5.3.6.tar.gz -C /opt/modules/cdh/ 2.H ...

  8. 玩转gulp之watch监听文件自动编译

    博客移至 https://www.dodoblog.cn/blog?id=5befc928e0feb34495b57035 我们在写页面的时候,用到sass less等css预处理器的时候,虽然写的很 ...

  9. 基于Netty的RPC架构学习笔记(八):protocol buff学习使用

    文章目录 简介 准备 protobuf配置文件 生成java代码 举个

  10. PAT_A1090#Highest Price in Supply Chain

    Source: PAT A1090 Highest Price in Supply Chain (25 分) Description: A supply chain is a network of r ...