我这个傻逼被治了一下午。

大好的橘势,两个小时6T,去看L,哇傻逼题。然后我跑的最短路T到自闭

最后十几分钟去想了下A,一直在想如何表示状态。。就是想不到二进制搞一下。。。

然后游戏结束了。。以后我就是蓝名之耻了。(注:此称号送给一场比赛里排名最低的蓝名选手)

所以非常凄惨到现在也只有8个,,我还想AK来着,,毕竟有紫名选手AK了,那我1800多分也差不多叭

注意:堆优化dijkstra的复杂度是mlogm!!!

注意:堆优化dijkstra的复杂度是mlogm!!!

注意:堆优化dijkstra的复杂度是mlogm!!!

A:貌似有奇怪的式子或者更佳的转移方式?

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9+;
ll f[][];
int n;
void init(){
f[^][]=;
int cnt=;
while (cnt<n){
cnt++;
int i=cnt%;
f[i^][]=f[i][]; f[i^][]=f[i][]; f[i^][]=f[i][]; f[i^][]=f[i][]+f[i][]; f[i^][]=f[i][]; f[i^][]=f[i][]; f[i^][]=f[i][]+f[i][]; f[i^][]=f[i][]+f[i][]+f[i][]; for(int j=;j<=;j++){
f[i^][j]%=mod;
}
}
}
int main(){
ios::sync_with_stdio(false);
cin>>n;
init();
if(n&){
cout<<min(f[][],f[][]);
} else{
cout<<max(f[][],f[][]);
}
}

B:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string s;
int main(){
ios::sync_with_stdio(false);
cin>>s;
int nc=,ns=;
for(int i=;i<s.length();i++){
if(s[i]=='C'&&nc<){
nc++;ns=;
cout<<'B';
} else if(s[i]=='C'&&nc==){
cout<<'P';
nc=;ns=;
} else if(s[i]=='S'&&ns<){
ns++;cout<<'D';nc=;
} else{
ns=;nc=;cout<<'T';
}
}
}

C:

D:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;ll s;
int main(){
ios::sync_with_stdio(false);
cin>>n;
while (n--){
cin>>s;
ll l=,r=15e8;
while (l<=r){
ll mid = l+r>>;
if((mid+)*mid/<=s){
l=mid+;
} else {
r=mid-;
}
}
cout<<r<<endl;
}
}

E:

F:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+;
int n,m;
struct Edge{
int u,v;
}e[N];
int a[N],ans[N];
int fa[N];
int find(int x){
return x==fa[x]?x:fa[x]=find(fa[x]);
}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<=m;i++){
fa[i]=i;
cin>>e[i].v>>e[i].u;
}
for(int i=;i<=m;i++){
cin>>a[i];
}
ans[m+]=n;
for(int i=m;i>=;i--){
int u=find(e[a[i]].u),v=find(e[a[i]].v);
if(u==v){
ans[i]=ans[i+];
} else{
fa[u]=v;
ans[i]=ans[i+]-;
}
}
for(int i=;i<=m+;i++){
cout<<ans[i]<<endl;
}
}

G:

H:被坑了好久才反应过来

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
double n,a,p;
int main(){
scanf("%lf%lf%lf",&n,&a,&p);
p/=;
double x = p-(-p);
n+=a*x;
printf("%.10f\n",n);
}

I:判点在多边形内部板子

#include <bits/stdc++.h>
using namespace std;
typedef double db;
const db eps=1e-;
const db pi=acos(-);
int sign(db k){
if (k>eps) return ; else if (k<-eps) return -; return ;
}
int cmp(db k1,db k2){return sign(k1-k2);}
int inmid(db k1,db k2,db k3){ return sign(k1-k3)*sign(k2-k3)<=;}
struct point {
db x,y;
point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}
point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
point operator * (db k1) const{return (point){x*k1,y*k1};}
point operator / (db k1) const{return (point){x/k1,y/k1};}
bool operator == (const point &k1) const{return cmp(x,k1.x)==&&cmp(y,k1.y)==;}
db abs(){ return sqrt(x*x+y*y);}
db abs2(){return x*x+y*y;}
db dis(point k1){ return (*this-k1).abs();}
bool operator<(const point &k1)const{
int c = cmp(x,k1.x);
if(c)return c==-;
return cmp(y,k1.y)==-;
}
};
int inmid(point k1,point k2,point k3){return inmid(k1.x,k2.x,k3.x)&&inmid(k1.y,k2.y,k3.y);}
db cross(point k1,point k2){ return k1.x*k2.y-k1.y*k2.x;}
int onS(point k1,point k2,point q){return inmid(k1,k2,q)&&sign(cross(k1-q,k2-k1))==;}
db dot(point k1,point k2){ return k1.x*k2.x+k1.y*k2.y;}
vector<point> convexHull(vector<point> ps){
int n = ps.size();if(n<=)return ps;
sort(ps.begin(),ps.end());
vector<point> qs(n*);int k = ;
for(int i=;i<n;qs[k++]=ps[i++])
while (k>&&cross(qs[k-]-qs[k-],ps[i]-qs[k-])<=)--k;
for(int i=n-,t=k;i>=;qs[k++]=ps[i--])
while (k>t&&cross(qs[k-]-qs[k-],ps[i]-qs[k-])<=)--k;
qs.resize(k-);
return qs;
}
int contain(vector<point>A,point q){//0外边
int pd=;A.push_back(A[]);
for(int i=;i<A.size();i++){
point u=A[i-],v=A[i];
if(onS(u,v,q))return ;if (cmp(u.y,v.y)>) swap(u,v);
if(cmp(u.y,q.y)>=||cmp(v.y,q.y)<)continue;
if(sign(cross(u-v,q-v))<)pd^=;
}
return pd<<;
}
vector<point>p[];
int s,r,m;
int n;
point tmp;
int main(){
scanf("%d%d%d",&s,&r,&m);
for(int i=;i<=s;i++){
scanf("%lf%lf",&tmp.x,&tmp.y);p[].push_back(tmp);
}
for(int i=;i<=r;i++){
scanf("%lf%lf",&tmp.x,&tmp.y);p[].push_back(tmp);
}
for(int i=;i<=m;i++){
scanf("%lf%lf",&tmp.x,&tmp.y);p[].push_back(tmp);
}
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%lf%lf",&tmp.x,&tmp.y);
if(contain(p[],tmp)){
printf("Sheena\n");
} else if(contain(p[],tmp)){
printf("Rose\n");
} else if(contain(p[],tmp)){
printf("Maria\n");
} else{
printf("Outside\n");
}
}
}

J:反着来维护区间和

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6+;
int n;
int a[N],c[N];
int lowbit(int k){ return k&-k;}
void upd(int pos,int num){
while (pos<=1e6+){
c[pos]+=num;
pos+=lowbit(pos);
}
}
int sum(int pos){
int res = ;
while (pos>){
res+=c[pos];
pos-=lowbit(pos);
}
return res;
}
int ans[N];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
cin>>a[i];a[i]++;
ans[i] = n-(i--sum(a[i]-));
upd(a[i],);
}
for(int i=;i<=n;i++){
printf("%d\n",ans[i]);
}
}

K:dij加一维维护模数。。好傻逼啊我的天。。为什么我这么傻逼啊。。因为终点只能走一次所以不能来更新其他节点,判断一下就好。

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5+;
struct Edge{int v,w,nxt;};
Edge e[];
int head[],cnt=;
void addEdge(int u,int v,int w){
e[++cnt].v=v;
e[cnt].w=w;
e[cnt].nxt=head[u];
head[u]=cnt;
}
int dis[][];
struct node{
int u,d,res;
bool operator <(const node&rhs)const {
return d>rhs.d;
}
};
int n,m;
void Dijkstra(){
for(int i=;i<=n;i++)for(int j=;j<;j++)dis[i][j]=;
dis[][]=;
priority_queue<node> Q;
Q.push((node){,,});
while (!Q.empty()){
node fr=Q.top();Q.pop();
int u=fr.u,d=fr.d,r=fr.res;
if(d>dis[u][r])continue;
if(u==n)continue;
for(int i=head[u];i;i=e[i].nxt){
int v = e[i].v,w=e[i].w;
if(dis[u][r]+w<dis[v][(r+)%]){
dis[v][(r+)%]=dis[u][r]+w;
Q.push((node){v,dis[v][(r+)%],(r+)%});
}
}
}
}
int dep[N];
void pa(){cout<<"me"<<endl;}
void pb(){cout<<"Gon"<<endl;}
void pc(){cout<<"Killua"<<endl;}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
int u,v,w;
while(m--){
cin>>u>>v>>w;
addEdge(u,v,w);
addEdge(v,u,w);
}
Dijkstra();
int a=dis[n][],b=dis[n][],c=dis[n][];
if(a<=b&&a<=c){
pa();
if(b<=c)pb(),pc();
else pc(),pb();
} else if(b<=a&&b<=c){
pb();
if(a<=c)pa(),pc();
else pc(),pa();
} else{
pc();
if(b<=a)pb(),pa();
else pa(),pb();
}
}

L:为什么这么傻逼的O(n)的做法我当时会想不到呢。。。

 #include <bits/stdc++.h>
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
vector<int> g[];
map<pii,int> mp;
struct Node{
int x,y;
}node[];
bool cmp(Node a,Node b){ return a.x<b.x;}
int n,l;
int dep[];
void dfs(int v){
for(int i=;i<g[v].size();i++){
int u = g[v][i];
if(dep[v]+>dep[u]) {
dep[u]=dep[v]+;
dfs(u);
}
}
}
int main(){
scanf("%d%d",&n,&l);
node[]={,};
mp[mk(,)]=;
for(int i=;i<=n;i++){
scanf("%d%d",&node[i].x,&node[i].y);
}
sort(node+,node++n,cmp);
for(int i=;i<=n;i++){
mp[mk(node[i].x,node[i].y)]=i;
}
node[n+]={l,};
mp[mk(l,)]=n+;
for(int i=;i<=n;i++){
for(int j=;j<=;j++){
for(int k=-(-j);k<=(-j);k++){
if(!mp.count(mk(node[i].x+j,node[i].y+k)))continue;
if(abs(j)+abs(k)<=){
g[i].push_back(mp[mk(node[i].x+j,node[i].y+k)]);
}
}
}
}
memset(dep,-0x3f, sizeof(dep));
dep[]=;
for(int i=;i<=n;i++){
for(int j=;j<g[i].size();j++){
int u = g[i][j];
dep[u]=max(dep[u],dep[i]+);
}
}
printf("%d\n",dep[n+]-);
}

总结。打的太烂了。L被治了,A题好像也没带脑子。K看了两眼没兴趣,其他的没看。。。在两个小时以后就失去了生命迹象。。。

补题的话。如果下周四补了就是补了,否则应该就是不补了。。。(囤了好十几道题了我好慌啊!!!)

md等我过几天上紫了非得开教练模式爽一爽。越切越想要教练模式。。。

gym 101858的更多相关文章

  1. ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力

     Gym 101047M Removing coins in Kem Kadrãn Time Limit:2000MS     Memory Limit:65536KB     64bit IO Fo ...

  2. ACM: Gym 101047K Training with Phuket's larvae - 思维题

     Gym 101047K Training with Phuket's larvae Time Limit:2000MS     Memory Limit:65536KB     64bit IO F ...

  3. ACM: Gym 101047E Escape from Ayutthaya - BFS

    Gym 101047E Escape from Ayutthaya Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I6 ...

  4. ACM: Gym 101047B Renzo and the palindromic decoration - 手速题

     Gym 101047B  Renzo and the palindromic decoration Time Limit:2000MS     Memory Limit:65536KB     64 ...

  5. Gym 101102J---Divisible Numbers(反推技巧题)

    题目链接 http://codeforces.com/gym/101102/problem/J Description standard input/output You are given an a ...

  6. Gym 100917J---Judgement(01背包+bitset)

    题目链接 http://codeforces.com/gym/100917/problem/J Description standard input/outputStatements The jury ...

  7. Gym 100917J---dir -C(RMQ--ST)

    题目链接 http://codeforces.com/gym/100917/problem/D problem description Famous Berland coder and IT mana ...

  8. Gym 101102D---Rectangles(单调栈)

    题目链接 http://codeforces.com/gym/101102/problem/D problem  description Given an R×C grid with each cel ...

  9. Gym 101102C---Bored Judge(区间最大值)

    题目链接 http://codeforces.com/gym/101102/problem/C problem description Judge Bahosain was bored at ACM ...

随机推荐

  1. 【小y设计】二维码条形码打印编辑器

    条码打印,价格标签打印,需要对打印进行排版,于是设计了一个简单的编辑器 支持条码二维码打印进行编辑排版,支持文字.图片.条码.二维码.直线,能自由拖拉,删除,并可保存为模版. 界面如下 (下载Demo ...

  2. c# zxing生成二维码和打印

    生成二维码代码 asset=“要生成的字符串”: public static Bitmap CreateQRCode(string asset) { EncodingOptions options = ...

  3. x264阅读记录-1

    x264阅读记录-1 采用x264版本是x264-snapshot-20060316-2245. 1. main函数 x264的main函数位于x264.c中,下面是main函数调用情况: (1)_s ...

  4. EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery

    一.目前EF Core的版本为V2.1 相比较EF Core v1.0 目前已经增加了不少功能. EF Core除了常用的增删改模型操作,Sql语句在不少项目中是不能避免的. 在EF Core中上下文 ...

  5. java使用httpclient封装post请求和get的请求

    在我们程序员生涯中,经常要复用代码,所以我们应该养成时常整理代码的好习惯,以下是我之前封装的httpclient的post和get请求所用的代码: package com.marco.common; ...

  6. 什么?又是404!趣图助你理解HTTP状态码~

    HTTP状态码(一):   注释: 301—永久移动.被请求的资源已被永久移动位置: 302—请求的资源现在临时从不同的 URI 响应请求: 305—使用代理.被请求的资源必须通过指定的代理才能被访问 ...

  7. 分享12款令人瞠目结舌的WebVR演示和实验效果

    不管你信不信, WebVR绝对是浏览器下一个让你激动的技术方向, 也许很快你就可以使用VR头显或者相关设备直接访问web内容和资源啦! 在这篇资源分享帖中,我们将介绍很多基于浏览器的VR演示和游戏,帮 ...

  8. windows ip 缓存清理

    ip缓存 ipconfig /release dns缓存 ipconfig/flushdns

  9. centos7.2重新安装yum

    [root@zf-test-web01-4 ~]# yum install rng-toolsLoaded plugins: fastestmirrorLoading mirror speeds fr ...

  10. IDEA调试SpringMvc项目时,出错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener,解决办法

    具体报错信息如下图所示: 解决方法:File > Project Structure > Artifacts > 在右侧Output Layout右击项目名,选择Put into O ...