11.3 afternoon



迭代40
#include<cstdio>
#include<cstring>
using namespace std;
int n,sum,falg;
char s[],c[];
void Dfs(int now){
if(now==sum+){
int flag=;
for(int i=;i+sum-<=n;i++){
int f=;
for(int j=;j<=sum;j++)
if(c[j]!=s[i+j-]){
f=;break;
}
if(f==){//都一样
flag=;break;
}
}
if(flag==)falg=;return;
}
c[now]='A';Dfs(now+);
if(falg)return;c[now]=' ';
c[now]='B';Dfs(now+);
if(falg)return;c[now]=' ';
}
int main()
{
freopen("ab.in","r",stdin);
freopen("ab.out","w",stdout);
scanf("%s",s+);
n=strlen(s+);
for(sum=;sum<=;sum++){
Dfs();if(falg)break;
}
for(int i=;i<=sum;i++)
printf("%c",c[i]);
fclose(stdin);fclose(stdout);
return ;
}
位运算预处理
/*
答案很短 很短
直接搜 不过 检验的时候很慢...
预处理所有的子串 存好了就可以O(1)的检验了
因为只有AB 可以用位运算优化
*/
#include<cstdio>
#include<cmath>
#include<cstring>
#define maxn (1<<22)+10
using namespace std;
int n,m,f[maxn],sum,falg,ans;
char s[maxn];
void Dfs(int now,int x){
if(now==sum+){
if(f[x]==){
ans=x;falg=;
}
return;
}
Dfs(now+,x);if(falg)return;
Dfs(now+,x+(<<now-));if(falg)return;
}
int main()
{
freopen("ab.in","r",stdin);
freopen("ab.out","w",stdout);
scanf("%s",s);
n=strlen(s);m=log(n)/log()+;
for(int i=;i<n;i++){
int x=;
for(int j=;j<=m;j++){
if(i+j->n)break;
if(s[i+j-]=='B')
x+=(<<j-);
f[x+(<<j)]=;
}
}
for(sum=;sum<=m;sum++){
Dfs(,<<sum);if(falg)break;
}
for(int i=;i<sum;i++)
if(ans&(<<i))printf("B");
else printf("A");
fclose(stdin);fclose(stdout);
return ;
}


暴力40
#include<cstdio>
#include<iostream>
#define bas 10000000
#define maxn 1000010
using namespace std;
int p,a,b,pri[maxn],cnt,ans;
bool f[bas+];
void Get(){
for(int i=;i<=bas;i++){
if(f[i]==)pri[++cnt]=i;
for(int j=;j<=cnt;j++){
if(i*pri[j]>bas)break;
f[i*pri[j]]=;
if(i%pri[j]==)break;
}
}
}
int main()
{
freopen("prime.in","r",stdin);
freopen("prime.out","w",stdout);
cin>>p>>a>>b;
if(p==&&a==&&b==){
cout<<""<<endl;return ;
}
int L=max(a,p+);
int R=b;Get();
for(int k=L;k<=R;k++){
int x=k,falg=;
for(int i=;i<=cnt;i++){
int P=pri[i];
if(P*P>x)break;
if(x%P==){
while(x%P==)x/=P;
if(P>p)falg=;
}
if(x<=bas&&f[x]==&&x>p)falg=;
if(falg==)break;
}
if(x>p)falg=;ans+=falg;
}
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
return ;
}
/*
求区间内有一个质因子比p大的数的个数
存在一个 不好判 正难则反 求全部<=p的数的个数
递推 定义状态 f[l][r][x]表示 l-r区间内 所有质因子<=p的数的个数
递推的话 就是 f[l][r][x]=f[l][r][x-1]+f[ l/x ][ r/x ][x];
还有几个边界条件 递推的话不会写顺序 写了搜索 状态太大存不下
索性不存了 嗯 本机测爆栈 不过答案应该问题不大
*/
#include<cstdio>
#include<cmath>
#include<algorithm>
#define N 1000000
using namespace std;
int L,R,p,prime[N/],num;
bool f[N+];
void Get(){
for(int i=;i<=N;i++){
if(f[i]==)prime[++num]=i;
for(int j=;j<=num;j++){
if(i*prime[j]>N)break;
f[i*prime[j]]=;
if(i%prime[j]==)break;
}
}
}
int Cal(int x){
int r=;
for(int i=;i<=num;i++){
if(prime[i]*prime[i]>x)break;
if(x%prime[i]==){
while(x%prime[i]==)x/=prime[i];
r=max(r,prime[i]);
}
}
return max(x,r);
}
int Dfs(int l,int r,int x){
if(l>r)return ;
if(x==)return l==;
if(r<=prime[x])return r-l+;
if(l==r)return Cal(r)<=prime[x];
return Dfs(l,r,x-)+Dfs((l-)/prime[x]+,r/prime[x],x);
}
int main()
{
freopen("prime.in","r",stdin);
freopen("prime.out","w",stdout);
scanf("%d%d%d",&p,&L,&R);Get();
int pos=upper_bound(prime+,prime++num,p)-prime-;
printf("%d\n",R-L+-Dfs(L,R,pos));
fclose(stdin);fclose(stdout);
return ;
}




暂无正解
11.3 afternoon的更多相关文章
- 11.2 afternoon
#include<iostream> #include<cstdio> #define ll long long using namespace std; ll n,ans; ...
- 11.1 afternoon
幸运数字(number)Time Limit:1000ms Memory Limit:64MB题目描述LYK 最近运气很差,例如在 NOIP 初赛中仅仅考了 90 分,刚刚卡进复赛,于是它决定使用一些 ...
- 地区sql
/*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : lo ...
- English trip -- VC(情景课) 6 C Is your class at 11:00? 你的课11点开始吗?
Grammar focus 语法点 Is your class at 11:00 ? # 带be动词的一般疑问句 Yes, it is No, it isn't 相当于 is not Pra ...
- 清北学堂—2020.1提高储备营—Day 2 afternoon(线段树、树状数组)
qbxt Day 2 afternoon --2020.1.18 济南 主讲:李佳实 目录一览 1.线段树 2.二叉搜索树(略过) 3.树状数组 总知识点:基础数据结构(本人初学感觉好难) 一.线段树 ...
- WinForm 天猫2013双11自动抢红包【源码下载】
1. 正确获取红包流程 2. 软件介绍 2.1 效果图: 2.2 功能介绍 2.2.1 账号登录 页面开始时,会载入这个网站:https://login.taobao.com/member/login ...
- C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)
#include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...
- CSS垂直居中的11种实现方式
今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...
- C++ 11 多线程--线程管理
说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段.并行是指两个或多个独立的操作同时进行.注意这里是同时进行,区别于并发,在一个时间段内执行多个操作.在单核时代,多个线程是并 ...
随机推荐
- select 模型
http://www.cnblogs.com/Anker/p/3258674.html http://www.cnblogs.com/cozy/articles/2088128.html http:/ ...
- bzoj 1034: [ZJOI2008]泡泡堂BNB 貪心
1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1398 Solved: 727[Submit][Sta ...
- Java日志性能
在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索.绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?今天 ...
- codeforces C. Painting Fence
http://codeforces.com/contest/448/problem/C 题意:给你n宽度为1,高度为ai的木板,然后用刷子刷颜色,可以横着刷.刷着刷,问最少刷多少次可以全部刷上颜色. ...
- String、StringBuffer和StringBuilder的区别
1 String String:字符串常量,字符串长度不可变.Java中String是immutable(不可变)的. String类的包含如下定义: /** The value is used fo ...
- Windows消息对Edit控件的处理
例如对windows发消息让文本选中. SendMessage(Text1.hwnd,EM_GETSEL,0,-1 ); EC_LEFTMARGIN(&H1) EC_USEFONTINF // ...
- C++ Prime:decltype类型指示符
decltype作用是选择并返回操作数的数据类型. decltype(f()) sum = x; // sum的类型就是函数f的返回类型 如果decltype使用的表达式是一个变量,则decltype ...
- 参数化时按行读取txt文件,如何去掉换行符"\n"
参数化按行读取txt,每行默认自带了回车换行操作,导致脚本报错,故而按行读取时,需要去掉默认的'\n' #coding=utf-8 from selenium import webdriver imp ...
- 几款常用Eclipse java插件
以下是我最近常用的几款Eclipse java插件: ADT Plugin https://dl-ssl.google.com/android/eclipse/ WindowBuilder Pro ...
- Poj 3580-SuperMemo Splay
题目:http://poj.org/problem?id=3580 SuperMemo Time Limit: 5000MS Memory Limit: 65536K Total Submis ...