今天题目真是贼难呐。。。才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. 微信小程序解析HTML标签带有<p>

    小程序中默认是不支持html格式没有<p>标签,但是有些接口需要返回带有标签的,例如 : 隐私协议: 解决方法: 小程序中有一个富文本标签组件,前端可以解析H5标签就是 rich-text ...

  2. drat笔记

    安装dart https://www.dartcn.com/install http://www.cndartlang.com/920.html 所有执行的方法都在main里面. main() {} ...

  3. sqlite3 install 和使用

    windows: 在 Windows 上安装 SQLite 请访问 http://www.sqlite.org/download.html,从 Windows 区下载预编译的二进制文件. 您需要下载  ...

  4. oracle查询表统计行数与注释

    SELECT TABLE_NAME,NUM_ROWS,(select COMMENTS from user_tab_comments WHERE TABLE_NAME=C.TABLE_NAME) FR ...

  5. SmartAssembly批处理用法

    在SmartAssembly.exe根目录有个SmartAssembly.com . 在命令行执行SmartAssembly.com就能看到所有的命令参数了. 用SmartAssembly.exe建好 ...

  6. Python:数值类型

    数值类型的组成 数值类型可以直接使用的有:整数.浮点数.复数 Python3的整型,可以自动调整大小,当做long使用 整数 int 整数的进制表示 表示形式: 二进制:0b... 八进制:0o... ...

  7. 走过的K8S坑

    基本的docker命令: docker 镜像 打包成文件 sudo docker save -o 打包后的文件名 {镜像ID}或者{镜像标签} docker 改名: docker tag ff2816 ...

  8. 吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(3)

    import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...

  9. Java学习资源 - 其他

    http请求HttpServletRequest详解 HttpServletRequest请求转发 高并发场景下的httpClient优化使用 HttpClien高并发请求连接池 - PoolingH ...

  10. linux下postgres创建hive数据库

    操作步骤 #登录 [root@xxx01 ~]# su postgres bash-4.2$ psql -U postgres could not change directory to " ...