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

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

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

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题啊好尴尬啊。。。

最新文章

  1. Android高效计算——RenderScript(二)
  2. 3Sum——leetcode
  3. Click模块化路由器
  4. 通过url获取图片尺寸的几种方法:JS和php
  5. SSH(2)
  6. Android Hotpatch系列之-给release包打Patch
  7. memcached 基本操作
  8. programming ruby
  9. 数字证书KeyTool使用(第二篇)
  10. codeforces567E. President and Roads
  11. HDU 4268 Alice and Bob set用法
  12. Android开发环境的搭建之(五)DDMS的测试
  13. WPF中对三维模型的控制
  14. 手机自动化测试:Appium源码之api(1)
  15. SSM中(Spring-SpringMVC-Mybatis)(二:整合)
  16. js动态加载数据并合并单元格
  17. 整体修改VS中C++工程和解决方案命名问题
  18. 机器学习经典论文/survey合集
  19. Oracle删除主键约束的同时删除索引
  20. iOS设计模式之单例

热门文章

  1. Eclipse创建Maven工程报错
  2. 1-web应用之LAMP源码环境搭建
  3. Python: with...as...
  4. 【MVC拾遗】MVC的单元测试简单学习总结
  5. cxf spring restful 问题解决(jar包冲突)
  6. ZOJ2604-DP
  7. DeviceIoControl
  8. JavaScript 32位整型无符号操作
  9. MVC——应用Ajax获取不到数据问题解答
  10. adb 安卓opencv manager报错:adb server is out of date.killing
  11. UI5_UIAlertView与UIActionSheet
  12. python读写配置文件
  13. nginx -- nginx平台初探(100%)
  14. 字符串(后缀数组):POJ 3294 Life Forms
  15. C# viewstate
  16. iOS开发之C语言函数库
  17. unity3D实际的原始视频游戏开发系列讲座10它《战斗:外来入侵》在第一季度游戏开发
  18. jquery-post get 同步问题
  19. netstream播放rtmp直播流卡顿
  20. 关于在vscode中以https方式请求!不是以file文件夹访问!vscode中 ajax请求