题面: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. C# 基于创建一个mysql 连接池

    创建一个连接池操作类 using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using Syste ...

  2. cocos构建的android项目的返回键相应

    @Override public boolean dispatchKeyEvent(KeyEvent event) { //返回键 cocosActivity不相应onbackPressed和onKe ...

  3. elementUI+JS实现全选与反选

    在实际项目开发过程中,遇到的需求,需要实现全选以及取消全选等功能,主要使用ElementUI + JS来实现,具体代码如下: <!DOCTYPE html> <html lang=& ...

  4. 修改Tomcat的端口号方法

      (1).查找conf路径下的server.xml文件,路径如: I: \tomcat6\apache-tomcat-6.0.32\conf\server.xml (2).打开server.xml文 ...

  5. 7.Struts2框架封装数据

    Struts2框架提供了很强大的数据封装的功能,不再需要使用Servlet的API完成手动封装了!! 第一种方式:属性驱动 > 提供对应属性的set方法进行数据的封装.--经常使用 * 表单的哪 ...

  6. 6.Srust2结果页面跳转

    1. 结果页面存在两种方式 * 全局结果页面 > 条件:如果<package>包中的一些action都返回success,并且返回的页面都是同一个JSP页面,这样就可以配置全局的结果 ...

  7. CSIC_716_20191205【TCP-解决粘包问题、UDP模板】

    ---------------------------------------------------------------------------------------------------- ...

  8. mysql命令行执行时不输出列名(字段名),直接显示字段对应的数值

    执行命令时加个-N参数就可以了 -N, –skip-column-names 比如说:mysql -uroot -p1234546 -N -e “select * from user;”

  9. visual studio snippet备忘

    一.C++ classheadercpp.snippet <?xml version="1.0" encoding="utf-8"?> <Co ...

  10. Python 分布式锁

    1,数据一致性 当多个进程/线程对同一个共享资源读写,会因为资源的争夺而出现混乱,导致数据不一致. 如下图: 在数据库的原始数据是 d0,上图的处理流程如下: t1 时刻,有两个数据源的数据 d1,d ...