别问我为什么现在才发。。。

我怎么睡醒午觉吃了个饭就晚上九点半了啊?????

真实自闭场,感觉码力严重不足需要补魔。

A:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll s,g;
int main(){
ios::sync_with_stdio(false);
cin>>s>>g;
if(s%g!=){
cout<<-;
}else if(s==g){
cout<<-;
} else{
ll tmp = s/g;
cout<<g<<' '<<(tmp-)*g;
}
}

B:显然最小的三角形两条边相邻,扫一遍就完了。

 #include <bits/stdc++.h>
using namespace std;
typedef double db;
typedef long long ll;
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);}
struct point {
ll x,y;
point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
};
ll cross(point k1,point k2){return k1.x*k2.y-k1.y*k2.x;}
int n;
point p[];
int main(){
ios::sync_with_stdio(false);
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%lld%lld",&p[i].x,&p[i].y);
}
ll ans = 4e18;
for(int i=;i<n;i++){
ll tmp = cross(p[i]-p[(i+)%n],p[(i+)%n]-p[(i+)%n]);
ans=min(ans,abs(tmp));
}
printf("%lld\n",ans);
}

C:贪心选最晚的时刻就完了。

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct Node{
int a,b;
}node[];
bool cmp(Node x,Node y){
return x.b<y.b;
}
int n;
vector<int> ans;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d%d",&node[i].a,&node[i].b);
}
sort(node+,node++n,cmp);
int now;
for(int l=,r;l<=n;l=r+){
now = node[l].b;r=l;
ans.push_back(now);
while (r<n&&node[r+].a<=now){
r++;
}
}
int t = ans.size();
printf("%d\n",t);
for(auto u:ans){
printf("%d ",u);
}
}

D:

E:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string s,t;
bool slove(int l,int r){
while (l<=r){
if(s[l]==t[r]&&s[r]==t[l]){
} else {
return false;
}
l++,r--;
}
return true;
}
int main(){
ios::sync_with_stdio(false);
cin>>s>>t;
if(s==t){
cout<<"YES"<<endl;
exit();
}
int l=-,r=-;
for(int i=;i<s.length();i++){
if(s[i]!=t[i]) {
l=i;
break;
}
}
for(int i=s.length()-;i>=;i--){
if(s[i]!=t[i]){
r=i;
break;
}
}
if(slove(l,r))
cout<<"YES";
else
cout<<"NO";
}
/**
adcba
adabc
*/

F:wa自闭了。。一直wa48。。这个题显然我们可以用一种类似拓扑排序的方式搞。

但是在中间过程要记录一下当前节点的父节点来check,

可以看一下这位大神的题解  https://blog.csdn.net/v5zsq/article/details/80156734

一是建完图以后看一下是否连的边在原图中都存在。

二是在中间更新父节点的时候,新更新的父节点肯定在之前的父节点(祖先)里。

有点含糊不清。fa其实就是从祖先不断更新一直更新到父节点的这个过程。

 #include <bits/stdc++.h>
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
int n,c,a;
int g[][];
int deg[],fa[];
vector<int> v[];
vector<pii>ans;
void gg() { cout << "NO";exit(); }
int main(){
ios::sync_with_stdio(false);
memset(fa,-, sizeof(fa));
cin>>n;
for(int i=;i<=n;i++){
cin>>c;
while (c--){
cin>>a;
g[i][a]=;
v[i].push_back(a);
deg[a]++;
}
}
queue<int> q;
for(int i=;i<=n;i++)
if(deg[i]==)q.push(i);
if(q.size()!=)gg();
int rt=q.front();
while (!q.empty()){
int x = q.front();
q.pop();
for(auto u:v[x]){
deg[u]--;
if(fa[u]!=-&&!g[fa[u]][x]){//新的祖先必然要以之前的祖先为祖先
gg();
}
fa[u]=x;
if(deg[u]==){
q.push(u);
ans.push_back(mk(x,u));
}
}
}
for(int i=;i<=n;i++){
if(i==rt)continue;
for(auto u:v[i]){
if(!g[fa[i]][u])gg();
}
}
if(ans.size()==n-){
cout<<"YES"<<endl;
for(auto tmp:ans){
cout<<tmp.first<<' '<<tmp.second<<endl;
}
} else {
gg();
}
}

H:bfs。要注意的是判断能不能走的时候每个点被更新的次数是很少的所以不会T。

看到有大神说至多两次。。。不太清楚。。。

 #include <bits/stdc++.h>
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
const int N = 2e5+;
int n,m,d;
bool in(int x,int y){
return x>=&&y>=&&x<=n&&y<=m;
}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m>>d;
char s[n+][m+];
int vis[n+][m+];
int val[n+][m+];
memset(vis,, sizeof(vis));
memset(val,, sizeof(val));
queue<pii> q;
pii u,v;
for(int i=;i<=n;i++){
for(int j=;j<=m;j++) {
cin >> s[i][j];
if(s[i][j]=='S') u=mk(i,j);
else if(s[i][j]=='F') v=mk(i,j);
else if(s[i][j]=='M') {
q.push(mk(i,j));vis[i][j]=;
}
}
}
while (!q.empty()){
int x = q.front().first,y=q.front().second;
q.pop();
if(in(x-,y)&&!vis[x-][y]&&val[x][y]<d){
vis[x-][y]=;
val[x-][y]=val[x][y]+;
q.push(mk(x-,y));
}
if(in(x+,y)&&!vis[x+][y]&&val[x][y]<d){
vis[x+][y]=;
val[x+][y]=val[x][y]+;
q.push(mk(x+,y));
}
if(in(x,y-)&&!vis[x][y-]&&val[x][y]<d){
vis[x][y-]=;
val[x][y-]=val[x][y]+;
q.push(mk(x,y-));
}
if(in(x,y+)&&!vis[x][y+]&&val[x][y]<d){
vis[x][y+]=;
val[x][y+]=val[x][y]+;
q.push(mk(x,y+));
}
}
if(vis[u.first][u.second]){
return *printf("-1\n");
}
while (!q.empty()) q.pop();
q.push(u);
memset(val,, sizeof(val));
while (!q.empty()){
int x=q.front().first,y=q.front().second;
q.pop();
if(in(x,y+)&&!val[x][y+]&&!vis[x][y+]){
val[x][y+]=val[x][y]+;
q.push(mk(x,y+));
}
if(in(x,y-)&&!val[x][y-]&&!vis[x][y-]){
val[x][y-]=val[x][y]+;
q.push(mk(x,y-));
}
if(in(x+,y)&&!val[x+][y]&&!vis[x+][y]){
val[x+][y]=val[x][y]+;
q.push(mk(x+,y));
}
if(in(x-,y)&&!val[x-][y]&&!vis[x-][y]){
val[x-][y]=val[x][y]+;
q.push(mk(x-,y));
}
}
if(val[v.first][v.second])
printf("%d\n",val[v.first][v.second]);
else
printf("-1\n");
}

J:

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = ;
int n,x,a[N];
int main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i=;i<=n;i++){
cin>>x;a[x]++;
}
int ans = ;
for(int i=;i<=;i++){
ans+=a[i]/;
}
ans/=;
cout<<ans<<endl;
}

K:显然二分,然后我们贪心的选就可以了。

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m;
int a[];
int check(int x){
int res=;
for(int i=;i<=n;i++){
if(a[i]<=res){
res++;
} else if(a[i]>res&&x>){
x--;
res++;
}
}
return res;
}
int main(){
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=;i<=n;i++){
cin>>a[i];
}
int l=,r=n,ans=m;
while (l<=r){
int mid = l+r>>;
if(check(mid)>=m){
r=mid-;
ans=mid;
} else{
l=mid+;
}
}
cout<<ans;
}

L:严重码力不足,,其实挺好想的,我们维护s串第i个位置下一个j字母的位置就可以了。

但是当时没写。。。貌似在专心自闭F。。。

 #include <bits/stdc++.h>
using namespace std;
const int N = ;
int nxt[N][],pos[],q;
char s[N],op[];
int ans[N];
int main(){
scanf("%s",s+);
int n = strlen(s+);
memset(nxt,-, sizeof(nxt));
memset(pos,-, sizeof(pos));
for(int i=n;i>=;i--){
for(int j=;j<;j++)
nxt[i][j]=pos[j];
pos[s[i]-'a']=i;
}
scanf("%d",&q);
int m=,len=;
while (q--){
scanf("%s",op);
if(op[]=='o'){//
m--;len=min(len,m);
} else{
scanf("%s",op);
if(ans[m]!=-&&nxt[ans[m]][op[]-'a']!=-) {
ans[m+]=nxt[ans[m]][op[]-'a'];
m++;len++;
} else{
ans[++m]=-;
}
}
if(len==m)printf("YES\n");
else printf("NO\n");
}
}
/**
abcabc
4
push a
push a
push a
push a
*/

M:

还是上面那个大神的 https://blog.csdn.net/v5zsq/article/details/80168485

这种小模拟思路清晰非常重要,然后我当时大概神志不清??反正就是不想写(雾

 #include <bits/stdc++.h>
using namespace std;
string a,b,c;int n;
vector<int> v;
bool check(){
int num=;
for(int i=;i<n;i++){
if(b[i]!=a[i])num++;
if(num>)return ;
}
num=;
for(int i=;i<n;i++){
if(c[i]!=a[i])num++;
if(num>)return ;
}
return ;
}
int main(){
ios::sync_with_stdio(false);
cin>>a>>b>>c;n=a.length();
for(int i=;i<n;i++){
if(a[i]!=b[i]||a[i]!=c[i])v.push_back(i);
}
if(v.size()>){
cout<<"Impossible"<<endl;
return ;
}
if(v.size()==){
cout<<"Ambiguous"<<endl;
return ;
}
int ans = ;
int pos,x;
if (check()){
ans++;
x=a[];pos=;
}
bool f=;
for(auto id:v){
char tmp = a[id];
for(int i=;i<;i++){
if(tmp==char('a'+i))continue;
a[id]=char('a'+i);
if(check()){
ans++;pos=id,x=char('a'+i);
//cout<<id<<' '<<char('a'+i)<<endl;
}
}
a[id]=tmp;
} if(ans==){
cout<<"Impossible\n";
} else if(ans>){
cout<<"Ambiguous"<<endl;
} else{
a[pos]=x;
cout<<a;
}
}

为什么好友单切全都9题10题啊?我才6题啊好尴尬啊。。。

gym 101755的更多相关文章

  1. GYM 101755 K.Video Reviews 【贪心】+【二分】

    <题目链接> 题目大意: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这 ...

  2. Video Reviews

    题目链接:http://codeforces.com/gym/101755/problem/K 题目理解: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个 ...

  3. Safe Path(bfs+一维数组存图)

    题目链接:http://codeforces.com/gym/101755/problem/H 题目分析:先bfs一遍怪兽可以到达的点,再bfs人可以走的地方看可不可以到达终点: 很显然读到  2&l ...

  4. 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 ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)

    说明: 1.必须要有一台机器具有外网IP的ECS. 2.如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵.下面会说明NAT网关的配置. 3.最后吐槽一下阿里云VPC网关导致不能按照 ...

  2. eclipse实现代码块折叠-类似于VS中的#region……#endregion

    背 景 刚才在写代码的时候,写了十几行可以说是重复的代码: 如果整个方法或类中代码多了,感觉它们太TM占地方了,给读者在阅读代码上造成很大的困难,于是想到能不能把他们“浓缩”成一行,脑子里第一个闪现出 ...

  3. 20、MySQLdb

    MySQLdb win64位安装python-mysqldb1.2.5 ubuntu下安装MySQLdb sudo apt-get install python-MySQLdb 导入MySQLdb库 ...

  4. CDH下集成spark2.2.0与kafka(四十一):在spark+kafka流处理程序中抛出错误java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V

    错误信息 19/01/15 19:36:40 WARN consumer.ConsumerConfig: The configuration max.poll.records = 1 was supp ...

  5. 升级SilverLight为5.1.50907.0后,VS调试时报“无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本”的处理办法

    作者: zyl910 一.问题 今天需要调试一个SilverLight程序.运行时ie弹出了一个升级提示,于是手贱点了升级. 随后便悲剧了,VS调试时报"无法启动调试--未安装 Silver ...

  6. windows10开启wst子系统

    需求描述: 在玩docker发现需要linux运行玩转,直接在vmware虚拟机上跑 ,性能有损耗.想直接在windows下运行docker 问题解决: windows10的wst子系统可以安装lin ...

  7. 通过apicloud实现的混合开发App的Demo

    技术:html+css+js+apicloud封装的api   概述 本Demo主要基本的HTML+CSS+JS实现的混合App,通过第三方平台apicloud主要页面有首页资讯+商城,目前数据都是静 ...

  8. How to trigger a Kubernetes cronjob manually-手动触发一个cronjob

    What should you do when you’ve developed and installed a cron job for your Kubernetes application, a ...

  9. 中文分词工具thulac4j发布

    1. 介绍 thulac4j是THULAC的Java 8工程化实现,具有分词速度快.准.强的特点:支持 自定义词典 繁体转简体 停用词过滤 若想在项目中使用thulac4j,可添加依赖: <de ...

  10. mongodb常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...