2019/11/02 TZOJ
1001 ShaoLin
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6003
标记一下id=1的,lower_bound找到在当前q前后的能力(now=*it,ex=*(--it))
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
map<int,int> ma;
set<int> se;
int main()
{
int t;
while(~scanf("%d",&t),t)
{
ma.clear(),se.clear();
ma[]=;
se.insert();
while(t--)
{
int id,q;scanf("%d%d",&id,&q);
ma[q]=id;
set<int> ::iterator it=se.lower_bound(q);
if(it==se.end())
printf("%d %d\n",id,ma[*(--it)]);
else{
if(it!=se.begin())
{
int now=*it,ex=*(--it);
if((now-q)>=(q-ex)) printf("%d %d\n",id,ma[ex]);
else printf("%d %d\n",id,ma[now]);
}
else printf("%d %d\n",id,ma[*it]);
}
se.insert(q);
}
}
}
1002 Find the Numbers
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3988
emm暴力了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[],cnt=;
int main()
{
int s,p,k;scanf("%d%d%d",&s,&p,&k);
for(int i=;i<=p/;i++)
if(p%i==) a[cnt++]=i;
a[cnt]=p;
if(k==) printf("%s\n",s>=p?"YES":"NO");
else if(k==)
{
for(int i=;i<=cnt;i++)
for(int j=;j<=cnt;j++)
if(a[i]*a[j]==p&&(a[i]+a[j])==s)
{
printf("YES\n");
return ;
}
printf("NO\n");
}
else if(k==)
{
for(int i=;i<=cnt;i++)
for(int j=;j<=cnt;j++)
for(int k=;k<=cnt;k++)
if(a[i]*a[j]*a[k]==p&&(a[i]+a[j]+a[k])==s)
{
printf("YES\n");
return ;
}
printf("NO\n");
}
else if(k==)
{
for(int i=;i<=cnt;i++)
for(int j=;j<=cnt;j++)
for(int k=;k<=cnt;k++)
for(int l=;l<=cnt;l++)
if(a[i]*a[j]*a[k]*a[l]==p&&(a[i]+a[j]+a[k]+a[l])==s)
{
printf("YES\n");
return ;
}
printf("NO\n");
}
}
1003 Mobile phones
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6017
输入1在(x,y)点加上a,输入2是查询(x1,y1)到(x2,y2)矩阵的元素和。贴一下参考的连接https://blog.csdn.net/baymax520/article/details/81276368
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=;
int ma[N][N],n,m;
int lowbit(int x){return x&-x;}
void add(int x,int y,int num)
{
for(int i=x;i<=m;i+=lowbit(i))
for(int j=y;j<=m;j+=lowbit(j))ma[i][j]+=num;
}
void query(int x1,int y1,int x2,int y2)
{
int ans=;
for(int i=x2;i>;i-=lowbit(i))
for(int j=y2;j>;j-=lowbit(j))ans+=ma[i][j];
for(int i=x2;i>;i-=lowbit(i))
for(int j=y1-;j>;j-=lowbit(j))ans-=ma[i][j];
for(int i=x1-;i>;i-=lowbit(i))
for(int j=y2;j>;j-=lowbit(j))ans-=ma[i][j];
for(int i=x1-;i>;i-=lowbit(i))
for(int j=y1-;j>;j-=lowbit(j))ans+=ma[i][j];
printf("%d\n",ans);
}
int main()
{
while(~scanf("%d",&n))
{
if(n==){
scanf("%d",&m);
memset(ma,,sizeof(ma));
}
else if(n==){
int x,y,a;scanf("%d%d%d",&x,&y,&a);
add(++x,++y,a);
}
else if(n==){
int x1,x2,y1,y2;scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
query(++x1,++y1,++x2,++y2);
}
else if(n==) break;
}
}
1004 Fair Division
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3386
排个序,钱少的在前边,钱一样多的就按id从大到小排。每个人都付剩余sum/(n-i)的平均钱。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct p{
int pay,val,id;
}kk[];
bool cmp(p a,p b)
{
if(a.val!=b.val) return a.val<b.val;
return a.id>b.id;
}
bool un_cmp(p a,p b)
{
return a.id<b.id;
}
int main()
{
int t;
for(scanf("%d",&t);t;t--)
{
int sum,n,all=;scanf("%d%d",&sum,&n);
for(int i=;i<n;i++)
{
scanf("%d",&kk[i].val);
kk[i].id=i;
all+=kk[i].val;
}
if(all<sum)
{
printf("IMPOSSIBLE\n");
continue;
}
sort(kk,kk+n,cmp);
for(int i=;i<n;i++)
{
kk[i].pay=min(kk[i].val,sum/(n-i));
sum-=kk[i].pay;
}
sort(kk,kk+n,un_cmp);
for(int i=;i<n;i++) printf("%d%c",kk[i].pay,i==n-?'\n':' ');
}
}
1005 Anniversary party
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6060
遍历一遍找到根节点,树形dp
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int dp[][],t;
int father[];
int vis[];
void solve(int node)
{
vis[node]=;
for(int i=;i<=t;i++)
{
if(!vis[i]&&father[i]==node)
{
solve(i);
dp[node][]+=dp[i][];
dp[node][]+=max(dp[i][],dp[i][]);
}
}
}
void init()
{
memset(dp,,sizeof(dp));
memset(vis,,sizeof(vis));
memset(father,,sizeof(father));
}
int main()
{
while(~scanf("%d",&t))
{
init();
int l,k,root;
for(int i=;i<=t;i++) scanf("%d",&dp[i][]);
while(~scanf("%d%d",&l,&k),l||k) father[l]=k;
for(int i=;i<=t;i++)
if(!father[i]) root=i;
solve(root);
printf("%d\n",max(dp[root][],dp[root][]));
}
}
1006 Twin Prime Conjecture
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6070
问的是n大的数里面有多少个前后素数相差2的twin素数。只有10^5,不大。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 100005
int ans[N];
int prime[N];
int vis[N];
const int n=;
int cnt=,now=;
void init()
{
for(int i=;i<=n;i++)
{
ans[i]=now;
if(vis[i]==)
{
prime[cnt]=i;
if(cnt!=&&prime[cnt]-prime[cnt-]==) now++;
ans[i]=now;
cnt++;
}
for(int j=;j<cnt&&i*prime[j]<=n;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==) break;
}
}
}
int main()
{
init();
//for(int i=0;i<20;i++) printf("%d\n",ans[i]);
int n;
while(~scanf("%d",&n),n>=)
{
printf("%d\n",ans[n]);
}
}
//1007跑了
1008 Manhattan Sort
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3677
把排序后和排序前的位置相差的和除以二
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct p{
int numb,id;
}a[];
bool cmp(p x,p y)
{
return x.numb<y.numb;
}
map<int,int> b;
int main()
{
int t;scanf("%d",&t);
for(int kk=;kk<=t;kk++)
{
int n;scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i].numb),a[i].id=b[a[i].numb]=i;
sort(a+,a+n+,cmp);
int ans=;
for(int i=;i<=n;i++)
ans+=abs(i-b[a[i].numb]);
printf("Case #%d: %d\n",kk,ans/);
}
}
1009 SPF
http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=2018
割点,困了,再说。
2019/11/02 TZOJ的更多相关文章
- 2019/11/09 TZOJ
1001 Interesting Integers http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail& ...
- star ccm+ 11.02安装
STAR CCM+是CD-Adapco公司的主打软件,其安装方式较为简单,这里以图文方式详细描述STAR CCM+11.02安装过程. 1 安装准备工作2 正式安装3 软件破解4 软件测试 1 安装准 ...
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
- [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)
更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...
- 2019.11.9 csp-s 考前模拟
2019.11.9 csp-s 考前模拟 是自闭少女lz /lb(泪奔 T1 我可能(呸,一定是唯一一个把这个题写炸了的人 题外话: 我可能是一个面向数据编程选手 作为一个唯一一个写炸T1的人,成功通 ...
- 2021.11.02 eleveni的水省选题的记录
2021.11.02 eleveni的水省选题的记录 因为eleveni比较菜,所以eleveni决定从绿题开始水 --实际上菜菜的eleveni连绿题都不一定能水过/忍不住哭了 [P2217 HAO ...
- 02/Oct/2019:11:55:28 类型的时间转换为
public static String upDataTime(String time) { Date upTime = new Date(); String newtime = null; Simp ...
- sicily 1007. To and Fro 2016 11 02
// Problem#: 1007// Submission#: 4893204// The source code is licensed under Creative Commons Attrib ...
- spring中quartz的使用。【转http://www.cnblogs.com/kay/archive/2007/11/02/947372.html】
注:从spring3到spring4改变 org.springframework.scheduling.quartz.CronTriggerBean org.springframework.sched ...
随机推荐
- 深入ArrayList看fast-fail机制
fail-fast机制简介 什么是fail-fast fail-fast 机制是java集合(Collection)中的一种错误机制.它只能被用来检测错误,因为JDK并不保证fail-fast机制一定 ...
- 移动端300ms延迟原理,穿透、遮罩层滑动导致下面滑动总结
遮罩层滑动导致下面滑动 1,阻止弹层滑动,使用默认事件,使用这种方式弹层不能滑动 document.getElementById("model").addEventListener ...
- 不想用ubuntu了,换个系统manjaro - change
# 下载 https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro/xfce/ # usb启动盘 rufus # 中文字体 pa ...
- 按字节读取txt文件缓存区大小设置多少比较好?
读取 txt 文件常规写法有逐行读取和按照字节缓存读取,那么按照字节缓存读取时,设置缓存区多大比较好呢?百度了一下,没发现有说这个问题的,自测了一把,以事实说话. 常规读取方法如下: // 字节流读取 ...
- paste - 合并文件各行
总览 (SYNOPSIS) ../src/paste [OPTION]... [FILE]... 描述 (DESCRIPTION) 连续 依次 从 各个 文件 FILE 中 读取 一行 然后 合并成 ...
- 使用GDB调试产生多进程的程序
如果一个进程fork了多个进程,这时使用GBD工具对程序进行调试会如何呢? 实际上,GDB 没有对多进程程序调试提供直接支持.例如,使用GDB调试某个进程,如果该进程fork了子进程,GDB会继续调试 ...
- thinkphp url和路由
一.入口模块修改 修改public下的index 加入 define('BIND_MODULE','admin'); 即可将入门模块绑定到admin模块 <?php // [ 应用入口文件 ] ...
- Oracle 11g 详细安装步骤
一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符. 官方下地址: http://www.ora ...
- navicat的使用(测试库和正式库同步)以及用plsql改表字段属性
说明:数据库的操作,除了查询,最好先做好备份,比如数据同步.更新.修改或删除之类的: netstat -antp 查看mysql端口 firewall -cmd --list-all 查看防 ...
- jquery用法初探
JQuery选择器 JQuery选择器用于查找满足条件的元素,比如可以用$(“#控件Id”)来根据控件id获得控件的jQuery对象,相当于getElementById: 1.id 选择器 $(“ ...