今天题目真是贼难呐。。。才38。。。

收获:树状数组单个修改

树状数组区间修改


T1:旅行

题意:有n个数,问;从中取任意个数,他们的和为质数的方案数是多少?(n<=50)

暴力模拟即可,这里不讲。

见代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,ans,sum,a[],b[];
bool flag[][];
bool pan(int x)
{
if(x==)
return false;
int i=;
while(i<=sqrt(x))
{
if(x%i==)
break;
else
i++;
}
if(i>sqrt(x))
return true;
else
return false;
}
void dfs(int x)
{
for(int i=b[x-]+;i<=n;i++)
{
if(flag[x][a[i]]==false)
{
sum+=a[i];
flag[x][a[i]]=true;
b[x]=i;
if(pan(sum))
{
ans++;
}
dfs(x+);
b[x]=;
sum-=a[i];
}
}
}
bool cmp(int x,int y)
{
return x<y;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a+n+,cmp);
dfs();
printf("%d",ans);
return ;
}

好题哉!!!


T2:神秘山庄

见题:

翠亨村是一个神秘的山庄,并不是因为它孕育了伟人孙中山,更神秘的是山庄里有N只鬼、M只兔子,当然还有你。其中每秒钟:
1. 恰有两个生物遇到。
2. 任意两个生物之间相遇的概率是均等的。
如果两只兔子相遇,没有事情发生;如果两只鬼相遇,他们会互相厮打,最终一起死亡;如果鬼遇到兔子,兔子就会被吃掉;如果鬼遇到你,哈哈。。。。symbol就见不到你了;如果你遇到兔子,那么你可以选择杀或不杀(概率相等)。
问你能活着见symbol的概率。
 
显然:只有鬼死光了才能获胜。那么兔子就是什么用都没有的了,剩下的,若鬼是奇数,责必死无疑。若鬼是偶数,因为最后人鬼只能活一个,所以概率为1/(n+1)。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
double n,m,a,sum=;
int main()
{
scanf("%lf%lf",&n,&m);
a=m++n;
if(int(n)%==)
printf("%.6lf",/(n+));
else
printf("%.6lf",);
return ;
}

好题哉!!!


T3:幸运锁

有一把幸运锁,打开它将会给你带来好运,但开锁时需要输入一个正整数(没有前导0)。幸运锁有一种运算,对于一个正整数,返回他的相邻两位数字间的差,如1135,运算结果为22(会去掉前导0)

现在已知只有经过反复运算最终结果为7的数才能打开这把锁,给你一个区间[a,b],问该区间中有多少个能打开幸运锁的幸运数。【限制】1<=a<=b<=10^9。
思路:暴力打表,暴力枚举。(据说有大佬用pascal打表AC)

见代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int a[],b[],flag,head;
bool pan(int x)
{
flag=;
while(x!=)
{
flag++;
b[flag]=x%;
x/=;
}
for(int i=;i<=flag;i++)
a[i]=b[flag-i+];
while(flag>)
{
head=;
while(a[]==)
{
for(int j=;j<=flag;j++)
{
a[j-]=a[j];
}
flag-=;
if(flag==)
break;
}
for(int i=;i<flag;i++)
{
a[head]=abs(a[i]-a[i+]);
head++;
for(int j=i+;j<=flag;j++)
{
a[j-]=a[j];
}
flag--;
}
}
if(a[]==)
return true;
return false;
}
int main()
{
freopen("lucky.in","r",stdin);
freopen("lucky.out","w",stdout);
int a1,b1,j,j1=,ans=;
scanf("%d%d",&a1,&b1);
for(int j=a1;j<=b1;j++)
if(pan(j)==true)
ans++;
printf("%d\n",ans);
return ;
}

好题哉!!!


T4:简单题

题意:给定一个序列,有两种操作:询问一段区间内的数字和、给一个区间内每个数加一个值。你需要回答每个询问。

思路:一看这题:呦呵!不是线段树区间修改的模板吗,秒做的说。

见代码:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,q,d,s,c1[],sum1[],c2[],a[];
char w;
long long lowbit(long long x)
{
return x&(-x);
}
long long sum(long long c[],long long x)
{
long long ret=;
while(x>)
{
ret+=c[x];
x-=lowbit(x);
}
return ret;
}
void add(long long c[],long long x,long long y)
{
while(x<=n)
{
c[x]+=y;
x+=lowbit(x);
}
}
int main()
{
freopen("simple.in","r",stdin);
freopen("simple.out","w",stdout);
scanf("%ld%ld",&n,&q);
for(int i=;i<=n;i++)
{
scanf("%ld",&a[i]);
sum1[i]=sum1[i-]+a[i];
}
for(int j=;j<=q;j++)
{
cin>>w;
scanf("%ld%ld",&s,&d);
if(int(w)==int('Q'))
{
long long suml=sum1[s-]+s*sum(c1,s-)-sum(c2,s-);
long long sumd=sum1[d]+(d+)*sum(c1,d)-sum(c2,d);
printf("%ld\n",sumd-suml);
}
else
{
long long cost;
scanf("%ld",&cost);
add(c1,s,cost);
add(c1,d+,-cost);
add(c2,s,s*cost);
add(c2,d+,-(d+)*cost);
}
}
return ;
}

好题哉!!!

中山Day5——普及的更多相关文章

  1. 中山Day10——普及

    今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...

  2. 中山Day4——普及

    生活开始日益平淡了呢...今天130分. 收获:归并排序求逆序对 背包问题(01.完全.多重)(外带滚动数组优化) T1:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的) 思路:动态规划.首先,设 ...

  3. 中山DAy2——普及

    今天挺不友好的,早上忘记定闹钟,晚了半小时起床,然后早上信心满满打算弄他个300分.结果……132.2分·.WTF??? T1:disease 题意:有n头奶牛,k种细菌(k<=15),给你每头 ...

  4. 中山纪中集训Day5叒是测试(划淼)

    A组T1 矩阵游戏(game) 九校联考24OI__D1T1 问题描述 LZK发明一个矩阵游戏,大家一起来玩玩吧,有一个N行M列的矩阵.第一行的数字是1,2,…M,第二行的数字是M+1,M+2…2*M ...

  5. 中山普及Day17——普及

    今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!

  6. 中山普及Day13——普及

    又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...

  7. day5

    作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期 ...

  8. NOIP2016普及总结

    ---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...

  9. NOIP2016普及

    还记得去年局部变量忘记置零coin爆零的事......结果我今年又要考一年普及[趴 最近沉迷分块莫队无法自拔,这几天才想起来我是个普及组选手 几乎没准备普及,周六上午抱抱佛脚好了...... 希望能顺 ...

随机推荐

  1. BZOJ - 1257 余数之和(数学)

    题目链接:余数之和 题意:给定正整数$n$和$k$,计算$k\%1+k\%2+\dots+k\%n$的值 思路:因为$k\%i=k-\left \lfloor \frac{k}{i} \right \ ...

  2. LVS的概念和重要性

    LVS: 概念:是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统 作用:举例 像有三个小区,但是工作的时间和休息的时间不一样,第一个是白天工作,一 ...

  3. 使用MQTTBox连接阿里云平台

    这篇只做一个简单的介绍,和上一篇没有根本的区别.只是就两个客户端的差异介绍一下. 一.需要参考的内容: 使用MQTT.fx连接阿里云平台: https://www.cnblogs.com/mhtc/p ...

  4. python中的分号(“;”)

    在C.Java等语言的语法中规定,必须以分号作为语句结束的标识.Python也支持分号,同样用于一条语句的结束标识.但在Python中分号的作用已经不像C.Java中那么重要了,Python中的分号可 ...

  5. EF中 GroupJoin 与 Join

    数据: GroupJoin: 返回左表所有数据 using (tempdbEntities context = new tempdbEntities()) { var query = context. ...

  6. buu Crypto 刷题记录

    1.MD5 直接解. 2.url编码 直接解. 3.一眼就解密 base64. 4.看我回旋踢 对文本内容全部CaesarDecode. 5.摩丝 直接MorseDecode. 6.Quoted-pr ...

  7. Android 调用系统Email发送带多附件的邮件

    转自:http://www.open-open.com/lib/view/open1347005126912.html 众所周知,在Android中调用其他程序进行相关处理,都是使用的Intent.当 ...

  8. wpf表单验证

    在做表单的,需要对User提交数据做验证,wpf与silverlight 都提供自带的验证机制,但是只是验证,并不能在提交时提供详细的信息,此时可使用 依赖属性将错误信息整合进自定义错误集合中,即可在 ...

  9. 「JSOI2014」强连通图

    「JSOI2014」强连通图 传送门 第一问很显然就是最大的强连通分量的大小. 对于第二问,我们先把原图进行缩点,得到 \(\text{DAG}\) 后,统计出入度为零的点的个数和出度为零的点的个数, ...

  10. CSRF预防手段

    1 referer 验证 2 token 验证