#include
using namespace std;
const int N = 2e5+10,mod=998244353;
#define int long long
using node=tuple;
typedef long long LL;
typedef pair PII;
int n,m,q;
int a[N];
void solve()
{
int a,b,c;cin>>a>>b>>c;
cout<<(abs(a-b)+2*c-1)/(2*c)<<"\n";
}
signed main() {
cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
int t=1;
cin>>t;
while(t--) solve();
}
B.直接枚举每个格子能走多大
#include
using namespace std;
const int N = 2e5+10,M=2*N,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
int a[N],b[N];
int n, m;
void solve()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}
int mx=1000000,mn=0;
for(int i=1;i<=n;i++)
{
mx=min(mx,a[i]+((b[i]-1)/2));
}
cout<>t;
while(t--) solve();
}
C.首先容易构造的是gcd=2,相当于是一个偶数/2,那么这种情况要特判
l==r,只能找他的质因子了,
#include
using namespace std;
const int N = 2e5+10,M=2*N,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
int a[N],b[N];
int n, m;
void solve()
{
int l,r;cin>>l>>r;
if(l==r)
{
for(int i=2;i<=l/i;i++){
if(l%i==0){
int x=l/i;
cout<>t;
while(t--) solve();
}
D.容斥原理
a+b-a*b,特判另一个数包含另一个数的集合就行
#include
using namespace std;
const int N = 2e5+10,M=2*N,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
int a[N],b[N];
int n, m;
int gcd(int a, int b) // 欧几里得算法
{
return b ? gcd(b, a % b) : a;
}
int lcm(int a,int b){
return a*b/gcd(a,b);
}
void solve()
{
cin>>n;
int x,y;cin>>x>>y;
if(x%y==0)
{ int z=n/y-n/x;
cout<<-((z+1)*z)/2<<"\n";
}
else if(y%x==0)
{
int z=n/x-n/y;
cout<<((n-z+1+n)*z)/2<<"\n";
}
else if(x!=1&&y!=1&&x!=y){
int now=n/(lcm(x,y));
int z=n/x-now;
int res=(n-z+1+n)*z/2;
z=n/y-now;
res-=((z+1)*z)/2;
cout<>t;
while(t--) solve();
}
E.直接线段树维护区间0的异或和 和 1的异或和,翻转操作就是互换而已
#include
using namespace std;
const int N = 2e5+10,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
struct node{
int l,r;
int s0,s1,w,add;
}tr[N*4];
int n,m,q;
int a[N],b[N];
string s;
void pushup(int u){
tr[u].s0=tr[u<<1].s0^tr[u<<1|1].s0;
tr[u].s1=tr[u<<1].s1^tr[u<<1|1].s1;
}
void pushdown(int u){
if(tr[u].add){
tr[u<<1].add^=1;
tr[u<<1|1].add^=1;
swap(tr[u<<1].s0,tr[u<<1].s1);
swap(tr[u<<1|1].s0,tr[u<<1|1].s1);
}
tr[u].add=0;
}
void build(int u,int l,int r){
tr[u]={l,r,0,0,0,0};
if(l==r){
tr[u].w=b[l];
if(b[l]==1) tr[u].s1=a[l];
else tr[u].s0=a[l];
}
else{
int mid=l+r>>1;
build(u<<1,l,mid);
build(u<<1|1,mid+1,r);
pushup(u);
}
}
void modify(int u,int l,int r){
if(tr[u].l>=l&&tr[u].r<=r)
{
tr[u].add^=1;
swap(tr[u].s1,tr[u].s0);
}
else{
pushdown(u);
int mid=tr[u].l+tr[u].r>>1;
if(l<=mid) modify(u<<1,l,r);
if(r>mid) modify(u<<1|1,l,r);
pushup(u);
}
}
// node query(int u,int l,int r){
// if(tr[u].l>=l&&tr[u].r<=r){
// return tr[u];
// }
// else{
// pushdown(u);
// node res={0,0,0,0,0};
// int mid=tr[u].l+tr[u].r>>1;
// if(l<=mid){
// res=query(u<<1,l,r);
// }
// if(r>mid) modify(u<<1|1,mid+1,r);
// }
// }
void solve()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>s;
s="?"+s;
for(int i=1;i<=n;i++) b[i]=s[i]-'0';
build(1,1,n);
int q;cin>>q;
while(q--){
int op;
cin>>op;
if(op==1){
int l,r;cin>>l>>r;
modify(1,l,r);
}
else{
int x;cin>>x;
if(x==1) cout<
#include
using namespace std;
const int N = 2e5+10,M=2*N,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
int a[N],b[N];
int n, m;
int G[N];
int dfn[N], low[N], timestamp;
int stk[N], top;
bool in_stk[N],Size[N];
int id[N], scc_cnt;
vector g[N];
int din[N],dout[N];
void tarjan(int u)
{
dfn[u] = low[u] = ++ timestamp;
stk[ ++ top] = u, in_stk[u] = true;
int j = G[u];
if (!dfn[j])
{
tarjan(j);
low[u] = min(low[u], low[j]);
}
else if (in_stk[j]) low[u] = min(low[u], dfn[j]);
if (dfn[u] == low[u])
{
++ scc_cnt;
int y;
do {
y = stk[top -- ];
in_stk[y] = false;
id[y] = scc_cnt;
} while (y != u);
}
}
void solve()
{
cin>>n;
top=timestamp=scc_cnt=0;
for(int i=0;i<=n;i++){
G[i]=0;
g[i].clear();
low[i]=dfn[i]=id[i]=0;
in_stk[i]=false;
din[i]=dout[i]=0;
}
for(int i=1;i<=n;i++){
cin>>a[i];
G[i]=a[i];
din[a[i]]++;
}
for(int i=1;i<=n;i++) cin>>b[i];
for(int i=1;i<=n;i++)
{
if(!dfn[i]) tarjan(i);
}
queue q;
vector res;
for(int i=1;i<=n;i++) if(din[i]==0) q.push(i);
while(q.size()){
auto t=q.front();
q.pop();res.push_back(t);
int v=G[t];
if(--din[v]==0){
q.push(v);
}
}
for(int i=1;i<=n;i++){
g[id[i]].push_back(i);
}
vector st(n+10,false);
function dfs=[&](int u){
if(st[u]) return ;
st[u]=true;
res.push_back(u);
dfs(G[u]);
};
for(int i=1;i<=scc_cnt;i++)
{
if(g[i].size()==1) continue;
else{
sort(g[i].begin(),g[i].end());
m=g[i].size();
int now=0,mx=0,idx=0;
for(auto x:g[i]) now+=2*b[x];
for(int x:g[i])
{
if(mx>t;
while(t--) solve();
}
G.首先把左右两边的1去掉没用,
然后思考中间的值,因为处理完后左右两边一定不是1,所以如果区间乘大于1e9
说明至少有60个2相乘,那么中间的1肯定也只能要
然后如果不大于
那么说明中间区间的数加起来不大于60(去掉中间是1的数)
那么直接枚举左右端点即可
#include
using namespace std;
const int N = 2e5+10,M=2*N,mod=998244353;
#define int long long
typedef long long LL;
typedef pair PII;
int a[N],b[N];
int n, m;
void solve()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
int l=1,r=n;
while(a[l]==1&&l1e9){
cout<1) b[++idx]=i;
sum+=a[i];
}
int ans=sum,ansl=1,ansr=1;
for(int i=1;i<=idx;i++){
res=1;
l=b[i];
int s=0;
for(int j=i;j<=idx;j++){
res*=a[b[j]];
r=b[j];
s+=a[b[j]];
int val=sum-s-(r-l+1-(j-i+1))+res;
if(val>ans){
ans=val;
ansl=l,ansr=r;
}
}
}
cout<>t;
while(t--) solve();
}
eclipse中使用maven插件的时候,运行run as maven build的时候报错
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.
可以设一个环境变量M2_HOME指
1.建好一个专门放置MySQL的目录
/mysql/db数据库目录
/mysql/data数据库数据文件目录
2.配置用户,添加专门的MySQL管理用户
>groupadd mysql ----添加用户组
>useradd -g mysql mysql ----在mysql用户组中添加一个mysql用户
3.配置,生成并安装MySQL
>cmake -D
好久没有去安装过MYSQL,今天自己在安装完MYSQL过后用navicat for mysql去厕测试链接的时候出现了10061的问题,因为的的MYSQL是最新版本为5.6.24,所以下载的文件夹里没有my.ini文件,所以在网上找了很多方法还是没有找到怎么解决问题,最后看到了一篇百度经验里有这个的介绍,按照其步骤也完成了安装,在这里给大家分享下这个链接的地址
import java.io.UnsupportedEncodingException;
/**
* 转换字符串的编码
*/
public class ChangeCharset {
/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */
public static final Strin
其实这个没啥技术含量,大湿们不要操笑哦,只是做一个简单的记录,简单用了一下递归算法。
import java.io.File;
/**
* @author Perlin
* @date 2014-6-30
*/
public class PrintDirectory {
public static void printDirectory(File f
linux安装mysql出现libs报冲突解决
安装mysql出现
file /usr/share/mysql/ukrainian/errmsg.sys from install of MySQL-server-5.5.33-1.linux2.6.i386 conflicts with file from package mysql-libs-5.1.61-4.el6.i686
Dear,
I'm pleased to announce that ktap release v0.1, this is the first official
release of ktap project, it is expected that this release is not fully
functional or very stable and we welcome bu