B - Yet Another Crosses Problem

题意:找如果使图中某一行某一列全部变成黑色,至少需要把多少个白方格变成黑方格

思路:直接找就可以,注意存储的时候要记得进行分开存储,存储每一行多少个白方格用一个数组,存储每一列多少个白方格用一个数组,最后再进行判断最少的是多少

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cmath>
4 #include<cstring>
5 #include<cstdio>
6 using namespace std;
7 const int maxx=50010;
8
9
10 int main(){
11 int t;
12 scanf("%d",&t);
13 while(t--){
14 int n,m;
15 scanf("%d %d",&n,&m);
16 int a[n][m];
17 int b[n+11]={0};
18 int c[m+11]={0};
19 char s;
20 for(int i=0;i<n;i++){
21 getchar();
22 for(int j=0;j<m;j++){
23 scanf("%c",&s);
24 if(s=='*'){
25 a[i][j]=0;
26
27 }else{
28 a[i][j]=1;
29 b[i]++;
30 c[j]++;
31 }
32
33 }
34
35 }
36 int minn=9e6;
37 for(int i=0;i<n;i++){
38 for(int j=0;j<m;j++){
39 int s=b[i]+c[j]-a[i][j];
40 minn=min(minn,s);
41 }
42
43 }
44 printf("%d\n",minn);
45
46
47 }
48 }

7-9 排座位

题意:布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。

思路:输入的i号宾客和j号宾客对应某种关系,就用一个数组的第i行第j列存入其对应关系,第j行第i列存入其对应关系,当查找其关系时进行数组遍历寻找,找其所在行所在列是否存在1或者-1,进行查找其关系,一定主意判断条件应该是相乘为1,并不是两个都为1,

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstring>
4 #include<cmath>
5 #include<cstdio>
6 using namespace std;
7 int main(){
8 int n,m,k;
9 scanf("%d %d %d",&n,&m,&k);
10 int a[n+2][n+2]={0};
11 for(int i=0;i<m;i++){
12 int h,l,num;
13 scanf("%d %d %d",&h,&l,&num);
14 a[h][l]=num;
15 a[l][h]=num;
16 }
17 while(k--){
18 int num1,num2;
19 scanf("%d %d",&num1,&num2);
20 if(a[num1][num2]==1){
21 printf("No problem\n");
22 }else if(a[num1][num2]==0){
23 printf("OK\n");
24 }else{
25 int flag=0;
26 for(int i=0;i<n;i++){
27 if(a[num1][i]*a[num2][i]==1){//一定注意
28 flag=1;
29 }
30 }
31 if(a[num1][num2]==0&&flag==1){
32 printf("No problem\n");
33 }else if(a[num1][num2]==0&&flag==0){
34 printf("OK\n");
35 }else if(a[num1][num2]==-1&&flag==1){
36 printf("OK but...\n");
37 }else{
38 printf("No way\n");
39 }
40 }
41 }
42 }

7-11 重排链表

题意:给定一个单链表 L​1​​→L​2​​→⋯→L​n−1​​→L​n​​,请编写程序将链表重新排列为 L​n​​→L​1​​→L​n−1​​→L​2​​→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。

思路:需要开设两个结构体,一个讲address作为存储的下标,然后通过这样存储以后,再进行开设第二个同类型的结构体,进行存入,主要是从第一个结构体的顺序上添加了他们的相对位置序号,输出的时候也要进行分开输出,不要两个两个的输出,就直接一个一个输出分开奇偶位置的数就好,不然还要分奇偶进行输出,就很麻烦

注意:1.存储的时候,看着样例以为data位置上就是他们的相对位置,直接进行这样输出了,结果就是错的,数据没有特殊性;2.数据输出的时候不要固化直接两个两个输出,一个一个分开奇偶位进行输出也好;3.用一个新的n更新结构体中链表的长度,因为会存在多余结点,导致出现很多的-1等等问题

代码:

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e5+2;
8 struct num{
9 int address,data,next,numm;
10 }point[maxx],ss[maxx];
11 bool cmp(num& a,num& b){
12 return a.numm<b.numm;
13 }
14 int main(){
15 int start,n;
16 scanf("%d %d",&start,&n);
17 int p;
18 for(int i=0;i<n;i++){
19 scanf("%d",&p);
20 scanf("%d %d",&point[p].data,&point[p].next);
21 }
22 p=start;
23 int i=1;
24 int sum=0;
25 while(p!=-1){
26 ss[i].address=p;
27 ss[i].data=point[p].data;
28 ss[i].next=point[p].next;
29 i++;
30 p=point[p].next;
31 sum++;
32 }
33
34 int j=0;
35 int left=1,right=sum;
36 while(sum--){
37 j++;
38 if(j%2==1){
39 if(sum!=0){
40 printf("%05d %d %05d\n",ss[right].address,ss[right].data,ss[left].address);
41 right--;
42 }else{
43 printf("%05d %d -1\n",ss[right].address,ss[right].data);
44
45 }
46
47 }else{
48 if(sum!=0){
49 printf("%05d %d %05d\n",ss[left].address,ss[left].data,ss[right].address);
50 left++;
51 }else{
52 printf("%05d %d -1\n",ss[left].address,ss[left].data);
53 }
54
55 }
56 }
57 }

7-12 分而治之

题意:分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。(其实就是找所给点是否可以遍历完所有的马路)

思路:进行结构体存储输入的一条路对应的两个城市,用数组中0.1去重的相似方法进行查找,所给攻破城市存入一个新的数组中,然后用结构体中的两个城市比较看是否两个城市都为初始值0

注意:1.一开始的时候用二维数组进行存储路线,后来因为循环太多出现了段错误;2.此题应该用已知去比较,而不是用所给攻破城市和已知去比较,因为此时的攻破城市已经在同一层面上,也就是都存入了一个一维数组中,不用逐个去比较

 1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 const int maxx=1e4+6;
8 struct point{
9 int a,b;
10 }p[maxx];
11 int main(){
12 int n,m;
13 scanf("%d %d",&n,&m);
14 for(int i=0;i<m;i++){
15 scanf("%d %d",&p[i].a,&p[i].b);
16 }
17 int np;
18 scanf("%d",&np);
19 while(np--){
20 int k;
21 int c[maxx]={0};
22 scanf("%d",&k);
23 int v;
24 for(int i=0;i<k;i++){
25 scanf("%d",&v);
26 c[v]=1;
27 }
28 int flag=0;
29 for(int i=0;i<m;i++){
30 if(c[p[i].a]==0&&c[p[i].b]==0){
31 flag=1;
32 }
33 }
34 if(flag==1){
35 printf("NO\n");
36 }else{
37 printf("YES\n");
38 }
39 }
40 }

QFNU 10-02 19 training的更多相关文章

  1. 2016年10月19日 星期三 --出埃及记 Exodus 19:3

    2016年10月19日 星期三 --出埃及记 Exodus 19:3 Then Moses went up to God, and the LORD called to him from the mo ...

  2. phpStudy + JspStudy 2014.10.02 下载

    phpStudy + JspStudy 2014.10.02 下载 目标:让天下没有难配的php环境. phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Teng ...

  3. Nanjing GDG Meetup 10月19日线下活动

     Nanjing GDG 10 月份的线下活动将在本周六 (10/19) 举办,这次会请到对所有开发者都有重要帮助的神器 GoAgent 的作者 Phus Lu 来给我们做一场分享,热烈欢迎大家报名参 ...

  4. 北京Uber优步司机奖励政策(10月19日~10月25日)

    用户组:优步北京人民优步A组(适用于10月19日-10月25日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万 ...

  5. 欢迎来怼-Alpha周(2017年10月19)贡献分配规则和分配结果

    .从alpha周(2017年10月19日开始的2周)开始,提高贡献分比重. 贡献分 : 团队分 = 1 : 5 教师会在核算每位同学总分时按比例乘以系数. 每位同学带入团队贡献分10分,如果团队一共7 ...

  6. delphi 颜色 引用http://www.cnblogs.com/del/archive/2008/02/19/1073568.html

    颜色名称   颜色效果   Hex HTML clBlack   $000000 #000000 clMaroon   $000080 #800000 clGreen   $008000 #00800 ...

  7. 07/29/2013 02:10:02 AM - CMDPHP: Poller[0] Host[6] DS[10] WARNING: Result from SNMP not valid. Partial Result: U

    snmpwalk -c public -v2c  客户端ip地址  自定义的oid  能取到数据,但是服务器端就是图片一片空白 rrdtool fetch 文件名.rrd 查看到的全都是nan cac ...

  8. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string: "13:02:19"

    问题:time类型数据插入不进mysql数据库:调试的时候报如下错误: Caused by: java.lang.NumberFormatException: For input string: &q ...

  9. 腾讯云 CIF 工程效能峰会,10 月 19 - 20 日震撼来袭!

    近年来,依托于云计算的飞速发展,腾讯云云产品更新迅猛,云原生生态构建初具规模,越来越多的企业也开始寻求与深入数字化转型之路.但在摸索与实践中,企业往往会进入"伪上云"的误区.除了单 ...

随机推荐

  1. ASP.NET跨域访问解决

    第一种: step1:添加引用(搜索CORS) step2: App_Start/WebApiConfig.cs中添加配置 step3: 在控制器中添加特性 第二种: 在App_Start/WebAp ...

  2. 想了很久,一道Microsoft的笔试题目 —— Reversing Linked List

    Reversing Linked List Given a constant K and a singly linked list L, you are supposed to reverse the ...

  3. P1048_采药(JAVA语言)

    思路:动态规划的背包问题.把时间看作重量,转换为01背包问题求解. 题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出 ...

  4. Pytorch数据读取与预处理实现与探索

    在炼丹时,数据的读取与预处理是关键一步.不同的模型所需要的数据以及预处理方式各不相同,如果每个轮子都我们自己写的话,是很浪费时间和精力的.Pytorch帮我们实现了方便的数据读取与预处理方法,下面记录 ...

  5. 001-Java学习前基础

    目录 前言 一.Java语言特性(简单概述) 二.JDK.JRE.JVM三者关系 三.java文件的加载与执行 前言 初次在博客园写博客,想通过这种方式把自己学过的东西梳理一遍,加深自己的记忆,笔记中 ...

  6. java例题_16 九九乘法表

    1 /*题目:输出 9*9 口诀. 2 程序分析:分行与列考虑,共 9 行 9 列,i 控制行,j 控制列. 3 */ 4 5 /*分析 6 * 用两侧for循环,外层循环还要控制换行 7 * 换行时 ...

  7. IndexError: list index out of range Python常见错误

    引用超过list最大索引,此错误非常常见,注意列表的元素个数 ----------------------------------------------

  8. 【RocketMQ源码分析】深入消息存储(3)

    前文回顾 CommitLog篇 --[RocketMQ源码分析]深入消息存储(1) ConsumeQueue篇 --[RocketMQ源码分析]深入消息存储(2) 前面两篇已经说过了消息如何存储到Co ...

  9. 机器学习--如何理解Accuracy, Precision, Recall, F1 score

    当我们在谈论一个模型好坏的时候,我们常常会听到准确率(Accuracy)这个词,我们也会听到"如何才能使模型的Accurcy更高".那么是不是准确率最高的模型就一定是最好的模型? 这篇博文会向大家解释 ...

  10. libnet的使用详解

    最近搬砖需要对libnet进行介绍在这里对知识进行汇总. 1.libnet简介 在libnet出现以前,如果要构造数据包并发送到网络中,程序员要通过一些复杂的接口来处理.libnet的出现,为程序员提 ...