錯誤的刪除操作?
上圖的操作會把迭代器刪除!!
it的指向就空了!!
於是會出現下圖警示?
正確的操作?
for
(it = ans.
begin()
; it != ans.
end();
)
#include
using
namespace std;
set<
int> ssr;
set<
int>
::iterator it;
int n, x;
intmain()
cout << ssr.
size()
<< endl;
for(it = ssr.
begin()
; it != ssr.
end(
); it++
) it == ssr.
begin()
? cout <<
*it : cout <<
" "<<
*it;
//按格式輸出
ssr.
clear()
; cout<
}//system("pause");
return0;
}
#include
using
namespace std;
set<
int> ssr;
set<
int>
::iterator it;
int n, k, x;
intmain()
if(k <= ssr.
size()
)else
cout <<
"no result"
;//system("pause");
return0;
}
#include
using
namespace std;
set ssr;
string str;
int n, x;
intmain()
else
}//system("pause");
return0;
}
所有的路都必須從右往左(按示例圖說的)遞減才能排出來。例如輸入:
98 4 2 5 3 9 1 6 7
先存8,再輸入4,4比8小,用4代替8(遞減排的要求),2代替4;
再碰到5,得新開一條路,於是存進去,計數器加一……
注意,因為是最少路數,所以用的upper_bound;
所以最終四條路是這樣的:(刪除線表示依次被替換)
8 4 2 1
5 39 6
7(打算用純陣列寫弄了將近兩個小時也沒ac,老老實實set吧)
#include
using
namespace std;
set<
int> ssr;
set<
int>
::iterator it;
int n, x, ans;
intmain()
else
else}}
cout << ans;
//system("pause");
return0;
}
這題主要是題意不明。
意思應該是去掉單個集合內重複的數,然後再看兩個集合中有幾對相等的數,分母就是去重後的元素個數減去相同的對數(我也不知道這從題目是怎麼推出來的,只能從輸入輸出一種關係一種關係的試)
#include
using
namespace std;
set<
int> ssr[51]
;//set陣列
int n, m, x;
intmain()
}int k;
cin >> k;
while
(k--
)//system("pause");
return0;
}
這題不難,但卡了我很久,原因就是上面的特別注意部分/大哭
以至於我都沒心情寫注釋了,應該還好懂吧
#include
using
namespace std;
set<
int> ssr[
1005
], ans;
set<
int>
::iterator it;
int n, m, x, t;
intmain()
}int k, s, n2;
scanf
("%d"
,&k)
;for
(int i =
1; i <= m; i++
) ssr[
1002].
insert
(i);
while
(k--)}
}else}}
for(it = ans.
begin()
; it != ans.
end(
); it++
)printf
("%d "
,*it)
;printf
("\n");
}//system("pause");
return0;
}
2020 2 18 大一寒假訓練十一(set)
模板題。include using namespace std int n,t set int s intmain cout int iterator it for it s.begin it s.end it cout return0 去重並排序。pragma gcc optimize 2 inc...
大一寒假訓練(七)
借鑑二位博主 抱拳 nefu ljw link.nefu wmjlink.problem a 週末舞會 佇列 link.include using namespace std queue int vis1,vis2 intmain return0 problem b 取牌遊戲 佇列 set link...
大一寒假訓練 暴力列舉
其實就是直接迴圈遍歷,利用計算機強大的計算效能,也就是俗稱的 乙個個試 2 5 6題較難 這題需要理清一下思路,然後六重迴圈完事。不超時是因為資料小,資料較多肯定tle.include using namespace std intmain return0 這裡的 是nefu ljw學長的解法,我理...