今天题目真是贼难呐。。。才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. MyBatis 传一个类型为String的参数时常见问题及解决方法

    MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 : <select id="selectB ...

  2. MySQL:ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN

    ALTER COLUMN.MODIFY COLUMN 和 CHANGE COLUMN 语句修改列: ALTER COLUMN:改变.删除列的默认值(备注:列的默认值存储在 .frm 文件中). 这个语 ...

  3. 【C语言】函数调用的简单例子

    #include<stdio.h> void p1() { printf("******************\n"); } void p2() { printf(& ...

  4. 【C语言】将输入的10个整数逆序输出

    代码1: #include <stdio.h> int main() { ], b[]; int i,j; printf("请输入10个整数:\n"); ; i < ...

  5. 微信HTTP公告

  6. RabbitMQ连接池、生产者、消费者实例

    1.本文分享RabbitMQ的工具类,经过实际项目长期测试,在此分享给发家,各位大神有什么建议请指正 !!! 2.下面是链接池主要代码: import java.util.HashMap; impor ...

  7. hamming distance(汉明距离)

    看knn算法时无意间发现这个算法,但是维基上有错误的示例和python代码...因为汉明距离并不是求相同长度字符串(或相同长度的整数)之间的字符(或数位)差异个数. 正确的详见:https://en. ...

  8. 虚拟机中安装centos7后无法上网,使用桥接网络+ssh

    首先是桥接网络解决无法上网的问题: 1保证你Vmware里面的虚拟机是关机状态2右键点击电脑屏幕右下角小电脑图标,选择打开网络与共享中心,然后点击弹出来的窗口左上角的“更改适配器设置”.这里指的是你W ...

  9. Vue CLI 3搭建vue+vuex 最全分析

    一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue ...

  10. Java后台技术(Dubbo入门)

    我现在公司提供的产品是即时通讯软件,因为我从.net桌面应用开发转岗,从java后台转项目经理,让我有幸拥有了后台开发人员所有的权限,所有的后台源码和技术文档对我开放,可惜仅在后台待了3周不到,还没来 ...