中山Day5——普及
今天题目真是贼难呐。。。才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:神秘山庄
见题:
#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——普及的更多相关文章
- 中山Day10——普及
今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...
- 中山Day4——普及
生活开始日益平淡了呢...今天130分. 收获:归并排序求逆序对 背包问题(01.完全.多重)(外带滚动数组优化) T1:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的) 思路:动态规划.首先,设 ...
- 中山DAy2——普及
今天挺不友好的,早上忘记定闹钟,晚了半小时起床,然后早上信心满满打算弄他个300分.结果……132.2分·.WTF??? T1:disease 题意:有n头奶牛,k种细菌(k<=15),给你每头 ...
- 中山纪中集训Day5叒是测试(划淼)
A组T1 矩阵游戏(game) 九校联考24OI__D1T1 问题描述 LZK发明一个矩阵游戏,大家一起来玩玩吧,有一个N行M列的矩阵.第一行的数字是1,2,…M,第二行的数字是M+1,M+2…2*M ...
- 中山普及Day17——普及
今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!
- 中山普及Day13——普及
又是迷之自信的说...估的230,考的50整,我欲上天呐!!! T1:深渊(怕不是黑暗种族聚集地???) 思路:动归.而且是简单动归.转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j ...
- day5
作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期 ...
- NOIP2016普及总结
---恢复内容开始--- 当时我说如果不出意外有385,结果就这么跪在了第二题,惨啊 本来以为发挥算正常,结果这发挥太不正常了 [T1] 水题啊[趴 注意下细节就好考你会不会写代码. [T2] 这题大 ...
- NOIP2016普及
还记得去年局部变量忘记置零coin爆零的事......结果我今年又要考一年普及[趴 最近沉迷分块莫队无法自拔,这几天才想起来我是个普及组选手 几乎没准备普及,周六上午抱抱佛脚好了...... 希望能顺 ...
随机推荐
- 消息队列(五) ---RocketMQ-消息存储3
问题: consumeQueue 如何工作 刷盘机制如何工作 概述 该节我们将学习 consumeQueue 如何工作,先来看一下消息发送的大概过程. 而为什么需要 consumeQueue 的存在呢 ...
- Atcoder Beginner Contest145E(01背包记录路径)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int a[3007],b[3007];int ...
- phpstorm问题
主题 PreferencesPreferencesPreferences 重要的事情说3边,而不是default setting Preferences->Appearance & Be ...
- MySQL基本查询
1.查询某数据库中表的总数 select count(*) from information_schema.tables where table_schema='dbname'; 2.仅占一列显示某数 ...
- 第八届极客大挑战 Web-php绕过
0x01.web-PHP的悖论1 题目: 链接:http://game.sycsec.com:2009/10111.php 解题思路: 1.首先,web对于选择二进制方向的我这个菜鸡绝对是十分懵逼的, ...
- centos7下安装pcre库(pcretest)
在linux下需要对正则表达式的验证,使用的验证工具是pcretest,这个工具集成在pcre库中,下面是安装教程. 安装环境是centos7. 1)首先去官网下载压缩包文件. 其他的source网站 ...
- 从ES6到ES10的新特性万字大总结
介绍ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)在标准ECMA-262中定义的脚本语言规范.这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实 ...
- Linux 笔记:虚拟控制台
登录后按Alt+F2键这时又可以看到"login:"提示符,这个就是第二个虚拟控制台. 一般新安装的Linux有四个虚拟控制台,可以用Alt+F1~Alt+F4来访问. 虚拟控制台 ...
- pycharm/IDEA等 windows 版 常用快捷键
- java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time.....
SpringBoot 2.1.4启动时报错 java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecogniz ...