【CQ18高一暑假前挑战赛4】标程
【二分或者STL】
二分:
#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int a[maxn];
int main()
{
int K,N,i,cnt=,pos;
scanf("%d%d",&K,&N);
for(i=;i<=N;i++) scanf("%d",&a[i]);
sort(a+,a+N+);
for(i=;i<=N;i++){
pos=lower_bound(a+,a+N+,K-a[i])-a;
if(pos>i&&a[pos]==K-a[i]) printf("%d %d\n",a[i],K-a[i]),cnt++;
}
if(cnt==) puts("No Solution");
return ;
}
set:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<set>
using namespace std;
int k,n,a[],s,q,flag;
set<int>st;
int main()
{
flag=;
cin>>k>>n;
for(int i=;i<=n;i++)
{
scanf("%lld",&s);
a[i]=s;
st.insert(s);
}
sort(a+,a++n);
set<int>::iterator j;
for(int i=;i<=n;i++)
{
q=k-a[i];
j=st.find(q);
if(j==st.end()) continue;
else{
if(*j>a[i])
{
flag=;
printf("%d %d\n",a[i],*j);
}
}
}
if(flag==) puts("No Solution");
return ;
}
【B:贪心题】
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=;
int a[maxn];
int main()
{
int N,i,j; ll ans=;
scanf("%d",&N);
for(i=;i<=N;i++) scanf("%d",&a[i]);
sort(a+,a+N+);
for(i=;i<=N;i++) a[i]+=a[i-],ans+=a[i];
printf("%lld\n",ans);
return ;
}
【C:暴力】
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+;
ll sum[maxn];
bool check(int x)
{
if(x%==) return true;
while(x){
if(x%==) return true;
x/=;
} return false;
}
void solve()
{
for(int i=;i<maxn;i++){
sum[i]=sum[i-];
if(!check(i)) sum[i]+=(ll)i*i;
}
}
int main()
{
solve();
int T,N;
scanf("%d",&T);
while(T--){
scanf("%d",&N);
printf("%lld\n",sum[N]);
}
return ;
}
【D:欧拉函数】
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll ans;
ll getphi(int x)
{
int res=x;
for(int i=;i*i<=x;i++){
if(x%i==){
res=res/i*(i-);
while(x%i==) x/=i;
}
}
if(x>) res=res/x*(x-);
return res;
}
int main()
{
int N; scanf("%d",&N);
for(int i=;i*i<=N;i++){
if(N%i==) {
ans+=getphi(N/i)*i;
if(i*i!=N) ans+=getphi(i)*(N/i);
}
}
printf("%lld\n",ans);
return ;
}
【E:容斥】
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=;
int p[maxn+],cnt;
short int vis[maxn+],mu[maxn+];
void read(int &x){
x=; char c=getchar();
while(c>''||c<'') c=getchar();
while(c>=''&&c<='') x=(x<<)+(x<<)+c-'',c=getchar();
}
void Put(ll x)
{
if(x>) Put(x/);
putchar(x%+'');
}
void prime()
{
mu[]=; for(int i=;i<=maxn;i++){
if(!vis[i]) p[++cnt]=i,mu[i]=-;
for(int j=;j<=maxn&&i*p[j]<=maxn;j++){
vis[i*p[j]]=; mu[i*p[j]]=-mu[i];
if(i%p[j]==) { mu[i*p[j]]=; break; }
}
}
}
int a[],num[maxn+];ll ans;
vector<int>G[maxn+];
int main()
{
prime();
int N,Q,x,i,j,Max=;
scanf("%d%d",&N,&Q);
for(i=;i<=N;i++) read(a[i]),Max=max(Max,a[i]),vis[i]=;
for(i=;i<=Max;i++){
for(j=i;j<=Max;j+=i)
G[j].push_back(i);
}
while(Q--){
read(x);
int L=G[a[x]].size();
if(vis[x]==){
for(i=;i<L;i++) num[G[a[x]][i]]--;
for(i=;i<L;i++) ans-=mu[G[a[x]][i]]*num[G[a[x]][i]];
}
else {
for(i=;i<L;i++) ans+=mu[G[a[x]][i]]*num[G[a[x]][i]];
for(i=;i<L;i++) num[G[a[x]][i]]++;
}
vis[x]=vis[x]^;
Put(ans); puts("");
}
return ;
}
【CQ18高一暑假前挑战赛4】标程的更多相关文章
- 【CQ18高一暑假前挑战赛5】标程
[A:暴力] #include<bits/stdc++.h> using namespace std; ; int a[maxn],vis[maxn],N,M; int main() { ...
- 【CQ18高一暑假前挑战赛3.5】标程
[A:快速幂相关] #include<bits/stdc++.h> using namespace std; int qpow(int a,int x){ a%=;; while(x){ ...
- 【CQ18高一暑假前挑战赛3】标程
[A:LCM] #include<bits/stdc++.h> using namespace std; #define ll long long int main() { ll a,b, ...
- 【CQ18高一暑假前挑战赛2】标程
[昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/st ...
- 【CQ18高一暑假前挑战赛1】标程
[A] #include<bits/stdc++.h> using namespace std; #define ll long long ll qpow(ll a,ll x,ll Mod ...
- [转]关于一些SPFA的标程
SPFA算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm. 最短路径快速算法-SPFA算法是西南交通大学段凡丁于1994年发表的. 适用范围:给定 ...
- [求助][SPOJ MARIOGAM]-高斯消元(内含标程,数据等)
小蒟蒻开始做概率的题之后,遇到了这道题,然而,他发现自己的程序调试了无数次也无法通过,系统总是返回令人伤心的WA, 于是,他决定把这一天半的时间收集到的资料放在网上, 寻求大家的帮助, 也可以节省后来 ...
- hdu6435 Problem J. CSGO标程讲解以及改正标程的一个错误(本来第一个样例过不了2333) 以及 poj2926 五维曼哈顿距离模板
比赛的时候抄poj2926的模板,但改不来啊orz #include <iostream> #include <cstdio> #include <cstring> ...
- 暑假前的flag
暑假到了,为了简便新开了一个博客,供暑假刷体放一些题解,玩acm1年多了,cf还是蓝名,真是菜的一笔,明年就大三了,马上就要毕业了,然而还是啥也不会,兼职和智障没什么两样,当初大一吹的牛逼说要成为学校 ...
随机推荐
- Git 的使用Git Bash和Git GUI
使用Github也有一年的时间了,之前一直都是使用的Github客户端,对提交,更新,克隆,合并,分支有一定的了解和实践.一直都想试试命令行的形式,但是感觉可能桌面版的方便就没有做. 可是Github ...
- 基于cucumber接口测试框架的扩展——测试框架总结之cucumber
主要功能: 1.通过fiddler抓取请求,导出xml文件. 2.解析xml文件至excel,或者手工填写excel数据. 3.根据excel中的URL中地址生成的接口集合和feature内容模板生成 ...
- Head First Python 学习笔记-Chapter3:文件读取和异常处理
第三章中主要介绍了简单的文件读取和简单的异常处理操作. 首先建立文件文件夹:HeadFirstPython\chapter3,在Head First Pythong官方站点下载须要使用的文件:sket ...
- NYOJ 353 3D dungeon 【bfs】
题意:给你一个高L长R宽C的图形.每个坐标都能够视为一个方格.你一次能够向上.下.左,右,前,后任一方向移动一个方格, 可是不能向有#标记的方格移动. 问:从S出发能不能到达E,假设能请输出最少的移动 ...
- windown vs2012 编译ffplay
自己写的播放器播放有些文件出现问题,但ffplay播放都很正常,为方便调试,将ffplay.c编译成可执行文件. 一. 环境搭建 环境搭建前面已经有文章介绍,没有特殊的地方,不再赘述. 二.修改con ...
- PHP工作模型与运行机制
PHP的工作模型非常特殊.从某种程度上说,PHP和ASP.ASP.NET.JSP/Servlet等流行的Web技术,有着本质上的区别. 以Java为例,Java在Web应用领域,有两种技术:Jav ...
- caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置
--http://blog.csdn.net/longji/article/details/60964998 注意: 在cmake的时候需要根据情况仔细修改配置,比如,如果gpu的能力不足3.0的话, ...
- vs2015终于配置完成了
安装vs2015,本来应该直接安装vs2015withupdate3的,但是由于当时手上只有vs2015的包,于是直接安装了. 打开C++工程cntk的时候提示需要安装很多东西包括vc编译工具.pyt ...
- 剑指Offer面试题16(Java版):反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点. 解决与链表相关的问题总是有大量的指针操作.而指针操作的代码总是easy出错的. 非常多的面试官喜欢出链表相关的问题,就是 ...
- Mvc创建并注册防盗链
创建CustomHandler.JpgHandler public class JpgHandler : IHttpHandler { public void ProcessRequest(HttpC ...